aboutsummaryrefslogtreecommitdiff
path: root/gdb/ax.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-03-21 16:09:27 +0000
committerTom Tromey <tromey@redhat.com>2013-03-21 16:09:27 +0000
commit92bc6a206434a8b6922846d064e9c701a5a10a0e (patch)
tree028fd4cec6f31f542d202e4294faa70a66383abd /gdb/ax.h
parent81f5558e3d93654ed79b6ea28850a4798ea1404f (diff)
downloadbinutils-92bc6a206434a8b6922846d064e9c701a5a10a0e.zip
binutils-92bc6a206434a8b6922846d064e9c701a5a10a0e.tar.gz
binutils-92bc6a206434a8b6922846d064e9c701a5a10a0e.tar.bz2
* tracepoint.h (decode_agent_options): Add 'trace_string'
argument. * tracepoint.c (decode_agent_options): Add 'trace_string' argument. (validate_actionline): Update. (collect_symbol): Add 'trace_string' argument. (struct add_local_symbols_data) <trace_string>: New field. (do_collect_symbol): Update. (add_local_symbols): Add 'trace_string' argument. (encode_actions_1): Update. (trace_dump_actions): Update. * dwarf2loc.c (access_memory): Update. * ax.h (struct agent_expr) <tracing, trace_string>: New fields. * ax-general.c (new_agent_expr): Update. * ax-gdb.h (gen_trace_for_expr, gen_trace_for_var) (gen_trace_for_return_address): Add argument. (trace_kludge, trace_string_kludge): Remove. * ax-gdb.c (trace_kludge, trace_string_kludge): Remove. (gen_traced_pop, gen_fetch, gen_bitfield_ref, gen_expr): Update. (gen_trace_for_var): Add 'trace_string' argument. (gen_trace_for_expr, gen_trace_for_return_address): Likewise. (gen_printf, agent_eval_command_one): Update.
Diffstat (limited to 'gdb/ax.h')
-rw-r--r--gdb/ax.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/ax.h b/gdb/ax.h
index 32887ef..3bb2d5b 100644
--- a/gdb/ax.h
+++ b/gdb/ax.h
@@ -143,6 +143,23 @@ struct agent_expr
*/
int reg_mask_len;
unsigned char *reg_mask;
+
+ /* For the data tracing facility, we need to insert `trace' bytecodes
+ before each data fetch; this records all the memory that the
+ expression touches in the course of evaluation, so that memory will
+ be available when the user later tries to evaluate the expression
+ in GDB.
+
+ Setting the flag 'tracing' to non-zero enables the code that
+ emits the trace bytecodes at the appropriate points. */
+
+ unsigned int tracing : 1;
+
+ /* This indicates that pointers to chars should get an added
+ tracenz bytecode to record nonzero bytes, up to a length that
+ is the value of trace_string. */
+
+ int trace_string;
};
/* Pointer to an agent_expr structure. */