diff options
author | Pedro Alves <palves@redhat.com> | 2010-04-02 01:18:35 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2010-04-02 01:18:35 +0000 |
commit | 5cea2a26596faf0ea2e67dd9f885543ff638cdd0 (patch) | |
tree | 12de505d9a0453148d23df614a9395a87fb1b798 | |
parent | 9406745256877df5fca7c8b2b672a0da901cb2d2 (diff) | |
download | gdb-5cea2a26596faf0ea2e67dd9f885543ff638cdd0.zip gdb-5cea2a26596faf0ea2e67dd9f885543ff638cdd0.tar.gz gdb-5cea2a26596faf0ea2e67dd9f885543ff638cdd0.tar.bz2 |
* breakpoint.h (struct counted_command_line): Moved definition to
breakpoint.c, and forward declare.
(breakpoint_commands): Declare.
* breakpoint.c (struct counted_command_line): Moved here.
(breakpoint_commands): New.
* tracepoint.c (encode_actions): Use breakpoint_commands.
* remote.c (remote_download_tracepoint): Ditto.
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/breakpoint.c | 16 | ||||
-rw-r--r-- | gdb/breakpoint.h | 16 | ||||
-rw-r--r-- | gdb/remote.c | 2 | ||||
-rw-r--r-- | gdb/tracepoint.c | 6 |
5 files changed, 37 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3c2f5d8..18eb942 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2010-04-02 Pedro Alves <pedro@codesourcery.com> + + * breakpoint.h (struct counted_command_line): Moved definition to + breakpoint.c, and forward declare. + (breakpoint_commands): Declare. + * breakpoint.c (struct counted_command_line): Moved here. + (breakpoint_commands): New. + * tracepoint.c (encode_actions): Use breakpoint_commands. + * remote.c (remote_download_tracepoint): Ditto. + 2010-04-01 H.J. Lu <hongjiu.lu@intel.com> * remote.c (remote_parse_stop_reply): Use hex_string instead diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 01ec269..46a50b9 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -222,6 +222,22 @@ static void disable_trace_command (char *, int); static void trace_pass_command (char *, int); +/* A reference-counted struct command_line. This lets multiple + breakpoints share a single command list. */ +struct counted_command_line +{ + /* The reference count. */ + int refc; + + /* The command list. */ + struct command_line *commands; +}; + +struct command_line * +breakpoint_commands (struct breakpoint *b) +{ + return b->commands ? b->commands->commands : NULL; +} /* Flag indicating that a command has proceeded the inferior past the current breakpoint. */ diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 98a7157..3da6188 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -384,15 +384,9 @@ typedef struct bp_location *bp_location_p; DEF_VEC_P(bp_location_p); /* A reference-counted struct command_line. This lets multiple - breakpoints share a single command list. */ -struct counted_command_line -{ - /* The reference count. */ - int refc; - - /* The command list. */ - struct command_line *commands; -}; + breakpoints share a single command list. This is an implementation + detail to the breakpoints module. */ +struct counted_command_line; /* Note that the ->silent field is not currently used by any commands (though the code is in there if it was to be, and set_raw_breakpoint @@ -814,6 +808,10 @@ extern void delete_breakpoint (struct breakpoint *); extern void breakpoint_auto_delete (bpstat); +/* Return the chain of command lines to execute when this breakpoint + is hit. */ +extern struct command_line *breakpoint_commands (struct breakpoint *b); + extern void break_command (char *, int); extern void hbreak_command_wrapper (char *, int); diff --git a/gdb/remote.c b/gdb/remote.c index 0108fdb..685be7a 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -9507,7 +9507,7 @@ remote_download_tracepoint (struct breakpoint *t) warning (_("Target does not support source download.")); } remote_download_command_source (t->number, loc->address, - t->commands->commands); + breakpoint_commands (t)); } do_cleanups (old_chain); diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index d7c9bfd..ac10997 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -1439,7 +1439,7 @@ encode_actions (struct breakpoint *t, struct bp_location *tloc, gdbarch_virtual_frame_pointer (t->gdbarch, t->loc->address, &frame_reg, &frame_offset); - actions = t->commands->commands; + actions = breakpoint_commands (t); /* If there are default expressions to collect, make up a collect action and prepend to the action list to encode. Note that since @@ -1458,7 +1458,7 @@ encode_actions (struct breakpoint *t, struct bp_location *tloc, default_collect_action = xmalloc (sizeof (struct command_line)); make_cleanup (xfree, default_collect_action); - default_collect_action->next = t->commands->commands; + default_collect_action->next = actions; default_collect_action->line = line; actions = default_collect_action; } @@ -2417,7 +2417,7 @@ trace_dump_command (char *args, int from_tty) if (loc->address == regcache_read_pc (regcache)) stepping_frame = 0; - for (action = t->commands->commands; action; action = action->next) + for (action = breakpoint_commands (t); action; action = action->next) { struct cmd_list_element *cmd; |