/* GDB-specific functions for operating on agent expressions
- Copyright (C) 1998, 1999, 2000, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
This file is part of GDB.
#ifndef AX_GDB_H
#define AX_GDB_H
+#include "ax.h" /* For agent_expr_up. */
+
struct expression;
+union exp_element;
/* Types and enums */
record the value of all memory touched by the expression, and leave
no values on the stack. The caller can then use the ax_reqs
function to discover which registers the expression uses. */
-extern struct agent_expr *gen_trace_for_expr (CORE_ADDR, struct expression *);
+extern agent_expr_up gen_trace_for_expr (CORE_ADDR, struct expression *,
+ int);
+
+extern agent_expr_up gen_trace_for_var (CORE_ADDR, struct gdbarch *,
+ struct symbol *, int);
+
+extern agent_expr_up gen_trace_for_return_address (CORE_ADDR,
+ struct gdbarch *,
+ int);
-extern struct agent_expr *gen_trace_for_var (CORE_ADDR, struct gdbarch *,
- struct symbol *);
+extern agent_expr_up gen_eval_for_expr (CORE_ADDR, struct expression *);
-extern struct agent_expr *gen_trace_for_return_address (CORE_ADDR,
- struct gdbarch *);
+extern void gen_expr (struct expression *exp, union exp_element **pc,
+ struct agent_expr *ax, struct axs_value *value);
-extern struct agent_expr *gen_eval_for_expr (CORE_ADDR, struct expression *);
+extern void require_rvalue (struct agent_expr *ax, struct axs_value *value);
-extern int trace_kludge;
-extern int trace_string_kludge;
+struct format_piece;
+extern agent_expr_up gen_printf (CORE_ADDR, struct gdbarch *,
+ CORE_ADDR, LONGEST, const char *, int,
+ struct format_piece *,
+ int, struct expression **);
#endif /* AX_GDB_H */