X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fax-gdb.h;h=8a3ec9419e3e95001beea580f19b41def32b68a6;hb=8118159c69a957292ce701b3d2937f19a0d0f973;hp=056b37db664dbaef6423cd96fc2f5b6d77c82cdc;hpb=bfe10c0faee24948aab639bac91ba4b8d659aaa7;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ax-gdb.h b/gdb/ax-gdb.h index 056b37db66..8a3ec9419e 100644 --- a/gdb/ax-gdb.h +++ b/gdb/ax-gdb.h @@ -1,5 +1,5 @@ /* GDB-specific functions for operating on agent expressions - Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -19,7 +19,10 @@ #ifndef AX_GDB_H #define AX_GDB_H +#include "ax.h" /* For agent_expr_up. */ + struct expression; +union exp_element; /* Types and enums */ @@ -77,9 +80,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 */ @@ -96,6 +103,25 @@ 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 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 agent_expr_up 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); + +extern agent_expr_up gen_printf (CORE_ADDR, struct gdbarch *, + CORE_ADDR, LONGEST, const char *, int, + int, struct expression **); #endif /* AX_GDB_H */