X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fax-gdb.h;h=dacacfc9ce578ba79a741efa11cd118e0e6d6b35;hb=484b3c325d8182cd7b7da4ceeaedc238c7f80b5c;hp=5d03c1849613c813989f6904c2c65fffa1ebb038;hpb=782b2b07842dcec0cbd9c4248b155d7acf8c8dbe;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ax-gdb.h b/gdb/ax-gdb.h index 5d03c18496..dacacfc9ce 100644 --- a/gdb/ax-gdb.h +++ b/gdb/ax-gdb.h @@ -1,6 +1,5 @@ /* GDB-specific functions for operating on agent expressions - Copyright (C) 1998, 1999, 2000, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 1998-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -21,6 +20,7 @@ #define AX_GDB_H struct expression; +union exp_element; /* Types and enums */ @@ -78,9 +78,13 @@ struct axs_value /* The type of the subexpression. Even if lvalue == axs_lvalue_memory, this is the type of the value itself; the value on the stack is a - "pointer to" an object of this type. */ + "pointer to" an object of this type. */ struct type *type; + /* If nonzero, this is a variable which does not actually exist in + the program. */ + char optimized_out; + union { /* if kind == axs_lvalue_register, this is the register number */ @@ -97,8 +101,27 @@ struct axs_value 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 struct agent_expr *gen_trace_for_expr (CORE_ADDR, struct expression *, + int); + +extern struct agent_expr *gen_trace_for_var (CORE_ADDR, struct gdbarch *, + struct symbol *, int); + +extern struct agent_expr *gen_trace_for_return_address (CORE_ADDR, + struct gdbarch *, + int); extern struct agent_expr *gen_eval_for_expr (CORE_ADDR, struct expression *); +extern void gen_expr (struct expression *exp, union exp_element **pc, + struct agent_expr *ax, struct axs_value *value); + +extern void require_rvalue (struct agent_expr *ax, struct axs_value *value); + +struct format_piece; +extern struct agent_expr *gen_printf (CORE_ADDR, struct gdbarch *, + CORE_ADDR, LONGEST, const char *, int, + struct format_piece *, + int, struct expression **); + #endif /* AX_GDB_H */