2012-07-25 Marc Khouzam <marc.khouzam@ericsson.com>
authorMarc Khouzam <marc.khouzam@ericsson.com>
Wed, 25 Jul 2012 18:34:17 +0000 (18:34 +0000)
committerMarc Khouzam <marc.khouzam@ericsson.com>
Wed, 25 Jul 2012 18:34:17 +0000 (18:34 +0000)
* 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
gdb/testsuite/gdb.mi/mi-pending.exp
gdb/testsuite/gdb.mi/mi-pendshr.c

index d4656b7239af2e50cafb5a849214f42298f9c492..6988348b2ba564b11a6db25bed54388b1127c991 100644 (file)
@@ -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
index f39ab71d30135f1d4aba46cbb281e18b17310c9a..e20beb5c10b15335389ce126df2ac3a60cf9814f 100644 (file)
@@ -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"
index 8f0837dd881455341b1445f4c0ccbd2d2187e72c..8271b08f6a0e159b6d16527e6636e700199ab071 100644 (file)
@@ -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);
 }