aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorMarc Khouzam <marc.khouzam@ericsson.com>2012-07-25 18:34:17 +0000
committerMarc Khouzam <marc.khouzam@ericsson.com>2012-07-25 18:34:17 +0000
commitea5ca7b5cf81373e26cb2da61ca1517be5a4adf2 (patch)
treefd6a99431807608d42e639e91f8928e6ad497def /gdb/testsuite
parent33d7655bb2b3cc12ac5401ae107a0aca33085d6e (diff)
downloadgdb-ea5ca7b5cf81373e26cb2da61ca1517be5a4adf2.zip
gdb-ea5ca7b5cf81373e26cb2da61ca1517be5a4adf2.tar.gz
gdb-ea5ca7b5cf81373e26cb2da61ca1517be5a4adf2.tar.bz2
2012-07-25 Marc Khouzam <marc.khouzam@ericsson.com>
* 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.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.mi/mi-pending.exp19
-rw-r--r--gdb/testsuite/gdb.mi/mi-pendshr.c6
3 files changed, 31 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d4656b7..6988348 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2012-07-25 Marc Khouzam <marc.khouzam@ericsson.com>
+
+ * 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 <palves@redhat.com>
PR threads/11692
diff --git a/gdb/testsuite/gdb.mi/mi-pending.exp b/gdb/testsuite/gdb.mi/mi-pending.exp
index f39ab71..e20beb5 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>\",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>\",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 8f0837d..8271b08 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);
}