* 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.
This commit is contained in:
Tom Tromey
2013-03-21 16:09:27 +00:00
parent 81f5558e3d
commit 92bc6a2064
8 changed files with 120 additions and 82 deletions

View File

@@ -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. */