2003-03-17 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Mon, 17 Mar 2003 19:51:58 +0000 (19:51 +0000)
committerDavid Carlton <carlton@bactrian.org>
Mon, 17 Mar 2003 19:51:58 +0000 (19:51 +0000)
* gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): New
test, for PR breakpoints/38.
Call test_watchpoint_and_breakpoint.
* gdb.base/watchpoint.c (func3): New function.
(main): Call func3.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/watchpoint.c
gdb/testsuite/gdb.base/watchpoint.exp

index fa7aa7312cfbcc9773115599ef94bf38d0ee153b..89e2462bf9dc6208af67ecdd2add10714864b149 100644 (file)
@@ -1,3 +1,11 @@
+2003-03-17  David Carlton  <carlton@math.stanford.edu>
+
+       * gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): New
+       test, for PR breakpoints/38.
+       Call test_watchpoint_and_breakpoint.
+       * gdb.base/watchpoint.c (func3): New function.
+       (main): Call func3.
+
 2003-03-04  David Carlton  <carlton@math.stanford.edu>
 
        * gdb.c++/templates.exp (do_tests): Accept valid const in "print
index 14ccecd525376af8f070db0399d6eb52d1458d68..1a61ba1652147231afbd6bda1036742397e6e134 100644 (file)
@@ -83,6 +83,18 @@ func2 ()
   static_b = local_a;
 }
 
+void
+func3 ()
+{
+  int x;
+  int y;
+
+  x = 0;
+  x = 1;                               /* second x assignment */
+  y = 1;
+  y = 2;
+}
+
 int
 func1 ()
 {
@@ -170,5 +182,8 @@ int main ()
   recurser (2);
 
   marker6 ();
+
+  func3 ();
+
   return 0;
 }
index f10955fce5ad37646eef6ec63254224eb5805683..c5e37d451a5e3fdafc9af0f77bbc827128516f81 100644 (file)
@@ -648,6 +648,27 @@ proc test_complex_watchpoint {} {
     }
 }
 
+proc test_watchpoint_and_breakpoint {} {
+    global gdb_prompt
+
+    # This is a test for PR gdb/38, which involves setting a
+    # watchpoint right after you've reached a breakpoint.
+
+    if [runto func3] then {
+       gdb_breakpoint [gdb_get_line_number "second x assignment"]
+       gdb_continue_to_breakpoint "second x assignment"
+       gdb_test "watch x" ".*atchpoint \[0-9\]+: x"
+       gdb_test_multiple "next" "next after watch x" {
+           -re ".*atchpoint \[0-9\]+: x\r\n\r\nOld value = 0\r\nNew value = 1\r\n.*$gdb_prompt $" {
+               pass "next after watch x"
+           }
+           -re "\[0-9\]+\[\t \]+y = 1;\r\n$gdb_prompt $" {
+               kfail "gdb/38" "next after watch x"
+           }
+       }
+    }
+}
+    
 # Start with a fresh gdb.
 
 gdb_exit
@@ -799,6 +820,17 @@ if [initialize] then {
         timeout {fail "(timeout) access watches disallowed"}
       }
     }
+
+    # See above.
+    if [istarget "mips-idt-*"] then {
+       gdb_exit
+       gdb_start
+       gdb_reinitialize_dir $srcdir/$subdir
+       gdb_load $binfile
+       initialize
+    }
+
+    test_watchpoint_and_breakpoint
 }
 
 # Restore old timeout