2013-04-23 Hui Zhu <hui@codesourcery.com>
authorHui Zhu <teawater@gmail.com>
Tue, 23 Apr 2013 02:42:44 +0000 (02:42 +0000)
committerHui Zhu <teawater@gmail.com>
Tue, 23 Apr 2013 02:42:44 +0000 (02:42 +0000)
PR gdb/15165

* breakpoint.c (dprintf_print_recreate): New.
(save_breakpoints): Let it not save dprintf commands.
(initialize_breakpoint_ops): Set dprintf_print_recreate.

2013-04-23  Hui Zhu  <hui@codesourcery.com>

PR gdb/15165

* gdb.base/save-bp.exp: Add test for dprintf.

gdb/ChangeLog
gdb/breakpoint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/save-bp.exp

index 17cdc7b..636f776 100644 (file)
@@ -1,3 +1,11 @@
+2013-04-23  Hui Zhu  <hui@codesourcery.com>
+
+       PR gdb/15165
+
+       * breakpoint.c (dprintf_print_recreate): New.
+       (save_breakpoints): Let it not save dprintf commands.
+       (initialize_breakpoint_ops): Set dprintf_print_recreate.
+
 2013-04-22  Tom Tromey  <tromey@redhat.com>
 
        PR gdb/7912:
index 2757c6b..84c5b46 100644 (file)
@@ -13364,6 +13364,16 @@ dprintf_re_set (struct breakpoint *b)
     update_dprintf_command_list (b);
 }
 
+/* Implement the "print_recreate" breakpoint_ops method for dprintf.  */
+
+static void
+dprintf_print_recreate (struct breakpoint *tp, struct ui_file *fp)
+{
+  fprintf_unfiltered (fp, "dprintf %s%s", tp->addr_string,
+                     tp->extra_string);
+  print_recreate_thread (tp, fp);
+}
+
 /* The breakpoint_ops structure to be used on static tracepoints with
    markers (`-m').  */
 
@@ -15453,7 +15463,7 @@ save_breakpoints (char *filename, int from_tty,
     if (tp->ignore_count)
       fprintf_unfiltered (fp, "  ignore $bpnum %d\n", tp->ignore_count);
 
-    if (tp->commands)
+    if (tp->type != bp_dprintf && tp->commands)
       {
        volatile struct gdb_exception ex;       
 
@@ -15859,7 +15869,7 @@ initialize_breakpoint_ops (void)
   ops->resources_needed = bkpt_resources_needed;
   ops->print_it = bkpt_print_it;
   ops->print_mention = bkpt_print_mention;
-  ops->print_recreate = bkpt_print_recreate;
+  ops->print_recreate = dprintf_print_recreate;
 }
 
 /* Chain containing all defined "enable breakpoint" subcommands.  */
index 2ecffc3..c0188c0 100644 (file)
@@ -1,3 +1,9 @@
+2013-04-23  Hui Zhu  <hui@codesourcery.com>
+
+       PR gdb/15165
+
+       * gdb.base/save-bp.exp: Add test for dprintf.
+
 2013-04-22  Tom Tromey  <tromey@redhat.com>
 
        * gdb.gdb/selftest.exp (do_steps_and_nexts): Check for
index fa3c5dd..72a6847 100644 (file)
@@ -46,6 +46,8 @@ set loc_bp5 [gdb_get_line_number "with commands"]
 gdb_breakpoint ${srcfile}:${loc_bp5}
 gdb_test "commands\nsilent\nend" "End with.*" "add breakpoint commands"
 
+gdb_test "dprintf ${srcfile}:${loc_bp5},\"At foo entry\\n\"" "Dprintf .*"
+
 # Now, save the breakpoints into a file...
 remote_file host delete "bps"
 gdb_test "save breakpoint bps"
@@ -65,5 +67,6 @@ gdb_test "source bps"
 
 # Now, verify that all breakpoints have been created correctly...
 set bp_row_start "\[0-9\]+ +breakpoint +keep +y +0x\[0-9a-f\]+ +in"
+set dprintf_row_start "\[0-9\]+ +dprintf +keep +y +0x\[0-9a-f\]+ +in"
 gdb_test "info break" \
-  " *Num +Type +Disp +Enb +Address +What\r\n$bp_row_start break_me at .*$srcfile:\[0-9\]+\r\n$bp_row_start main at .*$srcfile:$loc_bp2\r\n$bp_row_start main at .*$srcfile:$loc_bp3 +thread 1\r\n\[ \t]+stop only in thread 1\r\n$bp_row_start main at .*$srcfile:$loc_bp4\r\n\[ \t\]+stop only if i == 1( \\((host|target) evals\\))?\r\n$bp_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+silent"
+  " *Num +Type +Disp +Enb +Address +What\r\n$bp_row_start break_me at .*$srcfile:\[0-9\]+\r\n$bp_row_start main at .*$srcfile:$loc_bp2\r\n$bp_row_start main at .*$srcfile:$loc_bp3 +thread 1\r\n\[ \t]+stop only in thread 1\r\n$bp_row_start main at .*$srcfile:$loc_bp4\r\n\[ \t\]+stop only if i == 1( \\((host|target) evals\\))?\r\n$bp_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+silent\r\n$dprintf_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+printf.*"