* breakpoint.h (struct counted_command_line): Moved definition to
authorPedro Alves <palves@redhat.com>
Fri, 2 Apr 2010 01:18:35 +0000 (01:18 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 2 Apr 2010 01:18:35 +0000 (01:18 +0000)
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.

gdb/ChangeLog
gdb/breakpoint.c
gdb/breakpoint.h
gdb/remote.c
gdb/tracepoint.c

index 3c2f5d86aee5f980d469f4f83167c9810c188b26..18eb942f82619bb70059b7216035d0bfb31c30ba 100644 (file)
@@ -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
index 01ec269323e4591004e1e099c583f2f8fdd67e7f..46a50b9fa16d4e47973863b8ef6b0b77807f5ada 100644 (file)
@@ -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.  */
index 98a7157ea10e4c153b7dc6aa2818259aafa206e4..3da6188a17d73a1c56d88af47877de1a1286ad4e 100644 (file)
@@ -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);
index 0108fdb402180f49665400da59a1aa26621c8618..685be7a4fbf72db25e704395d2341a131fea207e 100644 (file)
@@ -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);
index d7c9bfde00f1719115221b6f2df7f0cf19de6027..ac109970837e328b7e889a58c262adb285a101aa 100644 (file)
@@ -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;