2010-03-29 Stan Shebs <stan@codesourcery.com>

* tracepoint.h (struct uploaded_string): New struct.
	(struct uploaded_tp): New fields for source strings.
	* breakpoint.c (this_utp, next_cmd): New globals.
	(read_uploaded_action): New function.
	(create_tracepoint_from_upload): Fill in more parts
	of a tracepoint.
	* tracepoint.c (encode_source_string): New function.
	(trace_save): Write out source strings, fix error checks.
	(parse_tracepoint_definition): Add source string parsing.
	* remote.c (PACKET_TracepointSource): New packet type.
	(remote_download_command_source): New function.
	(remote_download_tracepoint): Download source pieces also.
	(_initialize_remote): Add packet config command.

	* gdb.texinfo (Tracepoint Packets): Describe QTDPsrc.
	(General Query Packets): Describe TracepointSource.
This commit is contained in:
Stan Shebs
2010-03-29 23:45:06 +00:00
parent 2aab228b95
commit 409873ef5c
7 changed files with 315 additions and 38 deletions

View File

@ -122,7 +122,14 @@ extern char *default_collect;
/* Struct to collect random info about tracepoints on the target. */
struct uploaded_tp {
struct uploaded_string
{
char *str;
struct uploaded_string *next;
};
struct uploaded_tp
{
int number;
enum bptype type;
ULONGEST addr;
@ -135,12 +142,23 @@ struct uploaded_tp {
char *actions[100];
int num_step_actions;
char *step_actions[100];
/* The original string defining the location of the tracepoint. */
char *at_string;
/* The original string defining the tracepoint's condition. */
char *cond_string;
/* List of original strings defining the tracepoint's actions. */
struct uploaded_string *cmd_strings;
struct uploaded_tp *next;
};
/* Struct recording info about trace state variables on the target. */
struct uploaded_tsv {
struct uploaded_tsv
{
const char *name;
int number;
LONGEST initial_value;
@ -166,6 +184,10 @@ extern void while_stepping_pseudocommand (char *args, int from_tty);
extern struct trace_state_variable *find_trace_state_variable (const char *name);
extern struct trace_state_variable *create_trace_state_variable (const char *name);
extern int encode_source_string (int num, ULONGEST addr,
char *srctype, char *src,
char *buf, int buf_size);
extern void parse_trace_status (char *line, struct trace_status *ts);
extern void parse_tracepoint_definition (char *line, struct uploaded_tp **utpp);