[PATCH] Fix bug 15293 Ignore-count does not work properly with dprintf

Hui Zhu
2013-04-19T09:43:47Z

[-- Attachment #1: Type: text/plain, Size: 390 bytes --]

Hi,

This patch fix http://sourceware.org/bugzilla/show_bug.cgi?id=15293

Also I update dprintf.exp for this bug.

Please help me review it.

Thanks,
Hui

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

PR gdb/15293

* breakpoint.c (bpstat_what): Add BPSTAT_WHAT_SINGLE to bp_dprintf.

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

PR gdb/15293

* gdb.base/dprintf.exp: Add ignore command.

[-- Attachment #2: dprintf-ignore.txt --]
[-- Type: text/plain, Size: 309 bytes --]

--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -5529,7 +5529,10 @@ bpstat_what (bpstat bs_head)
break;

case bp_dprintf:
- this_action = BPSTAT_WHAT_STOP_SILENT;
+ if (bs->stop)
+ this_action = BPSTAT_WHAT_STOP_SILENT;
+ else
+ this_action = BPSTAT_WHAT_SINGLE;
break;

default:

[-- Attachment #3: dprintf-ignore-test.txt --]
[-- Type: text/plain, Size: 620 bytes --]

--- a/gdb/testsuite/gdb.base/dprintf.exp
+++ b/gdb/testsuite/gdb.base/dprintf.exp
@@ -40,6 +40,8 @@ gdb_breakpoint "main"
gdb_test "dprintf foo,\"At foo entry\\n\"" \
"Dprintf .*"

+gdb_test "ignore \$bpnum 1" ".*Will ignore next crossing of breakpoint.*"
+
gdb_test "dprintf $dp_location1,\"arg=%d, g=%d\\n\", arg, g" \
"Dprintf .*"

@@ -61,7 +63,7 @@ gdb_run_cmd

gdb_test "" "Breakpoint"

-gdb_test "continue" "At foo entry.*arg=1234, g=1234.*" "1st dprintf, gdb"
+gdb_test "continue" "arg=1234, g=1234.*" "1st dprintf, gdb"

gdb_test "continue" "At foo entry.*arg=1235, g=2222.*" "2nd dprintf, gdb"