From ea5ca7b5cf81373e26cb2da61ca1517be5a4adf2 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Wed, 25 Jul 2012 18:34:17 +0000 Subject: [PATCH] 2012-07-25 Marc Khouzam * gdb.mi/mi-pending.c: New method to set a second pending breakpoint. * gdb.mi/mi-pending.exp: Set a pending breakpoint with a condition. --- gdb/testsuite/ChangeLog | 7 +++++++ gdb/testsuite/gdb.mi/mi-pending.exp | 19 ++++++++++++++++++- gdb/testsuite/gdb.mi/mi-pendshr.c | 6 ++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d4656b7239a..6988348b2ba 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2012-07-25 Marc Khouzam + + * gdb.mi/mi-pending.c: New method to set a second pending + breakpoint. + * gdb.mi/mi-pending.exp: Set a pending breakpoint with a + condition. + 2012-07-20 Pedro Alves PR threads/11692 diff --git a/gdb/testsuite/gdb.mi/mi-pending.exp b/gdb/testsuite/gdb.mi/mi-pending.exp index f39ab71d301..e20beb5c10b 100644 --- a/gdb/testsuite/gdb.mi/mi-pending.exp +++ b/gdb/testsuite/gdb.mi/mi-pending.exp @@ -48,12 +48,29 @@ mi_gdb_reinitialize_dir $srcdir/$subdir mi_gdb_load ${binfile} mi_load_shlibs $lib_sl -# Set pending breakpoint via MI +# Set pending breakpoint via MI. mi_gdb_test "-break-insert -f pendfunc1" \ ".*\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"\",pending=\"pendfunc1\",times=\"0\",original-location=\"pendfunc1\"\}"\ "MI pending breakpoint on pendfunc1" +# Set pending breakpoint with a condition via MI. +mi_gdb_test "-break-insert -f -c x==4 ${srcfile2}:pendfunc2" \ + ".*\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"\",pending=\"${srcfile2}:pendfunc2\",cond=\"x==4\",times=\"0\",original-location=\"${srcfile2}:pendfunc2\"\}"\ + "MI pending breakpoint on ${srcfile2}:pendfunc2 if x==4" + mi_run_cmd mi_expect_stop "breakpoint-hit" "pendfunc1" ".*" ".*" ".*" \ { "" "disp=\"keep\"" } \ "Run till MI pending breakpoint on pendfunc1" + +mi_send_resuming_command "exec-continue" "continuing execution to skip conditional bp" +# We should not stop on the conditional breakpoint yet, but we stop on the original bp. +mi_expect_stop "breakpoint-hit" "pendfunc1" ".*" ".*" ".*" \ + { "" "disp=\"keep\"" } \ + "Run till MI pending breakpoint on pendfunc1 a second time" + +mi_send_resuming_command "exec-continue" "continuing execution to conditional bp" +# Now we should stop on the conditional breakpoint. +mi_expect_stop "breakpoint-hit" "pendfunc2" "\{name=\"x\",value=\"4\"\}" ".*" ".*" \ + { "" "disp=\"keep\"" } \ + "Run till MI pending breakpoint on pendfunc2 with x==4" diff --git a/gdb/testsuite/gdb.mi/mi-pendshr.c b/gdb/testsuite/gdb.mi/mi-pendshr.c index 8f0837dd881..8271b08f6a0 100644 --- a/gdb/testsuite/gdb.mi/mi-pendshr.c +++ b/gdb/testsuite/gdb.mi/mi-pendshr.c @@ -23,7 +23,13 @@ void pendfunc1 (int x) printf ("in pendfunc1, x is %d\n", x); } +void pendfunc2 (int x) +{ + printf ("in pendfunc2, x is %d\n", x); +} + void pendfunc (int x) { pendfunc1 (x); + pendfunc2 (x); } -- 2.30.2