gdb/testsuite/
authorDaniel Jacobowitz <drow@false.org>
Fri, 13 Nov 2009 21:59:00 +0000 (21:59 +0000)
committerDaniel Jacobowitz <drow@false.org>
Fri, 13 Nov 2009 21:59:00 +0000 (21:59 +0000)
* gdb.cp/formatted-ref.exp (test_p_x_ref_addr): Allow the reference
to be in memory.
* gdb.base/display.c (force_mem): New.
(do_loops): Use it.  Add breakpoint comments.
(do_vars): Add a breakpoint comment.
* gdb.base/display.exp: Use gdb_get_line_number.  Remove hardcoded
line numbers.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/display.c
gdb/testsuite/gdb.base/display.exp
gdb/testsuite/gdb.cp/formatted-ref.exp

index a8696cc..5f97eb8 100644 (file)
@@ -1,3 +1,13 @@
+2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * gdb.cp/formatted-ref.exp (test_p_x_ref_addr): Allow the reference
+       to be in memory.
+       * gdb.base/display.c (force_mem): New.
+       (do_loops): Use it.  Add breakpoint comments.
+       (do_vars): Add a breakpoint comment.
+       * gdb.base/display.exp: Use gdb_get_line_number.  Remove hardcoded
+       line numbers.
+
 2009-11-13  Nathan Froyd  <froydnj@codesourcery.com>
 
        * gdb.base/pending.exp: Use gdb_run_cmd to start the program
index 3652409..332c45b 100644 (file)
@@ -5,20 +5,23 @@
 
 int sum = 0;
 
+/* Call to force a variable onto the stack so we can see its address.  */
+void force_mem (int *arg) { }
+
 int do_loops()
 {
     int i=0;
     int k=0;
     int j=0;
     float f=3.1415;
-    for( i = 0; i < LOOP; i++ ) {
+    for( i = 0; i < LOOP; i++ ) { /* set breakpoint 1 here */
         for( j = 0; j < LOOP; j++ ) {
             for( k = 0; k < LOOP; k++ ) {
-                sum++; f++;
+                sum++; f++; force_mem (&k);
             }
         }
     } 
-    return i;
+    return i; /* set breakpoint 2 here */
 }
 
 int do_vars()
@@ -34,7 +37,7 @@ int do_vars()
     /* Need some code here to set breaks on.
      */
     for( j = 0; j < LOOP; j++ ) {
-        if( p_c[j] == c ) {
+        if( p_c[j] == c ) { /* set breakpoint 3 here */
             j++;
         } 
         else {
index 174c53f..9839705 100644 (file)
@@ -78,13 +78,15 @@ if [target_info exists gdb,no_hardware_watchpoints] {
     gdb_test "set can-use-hw-watchpoints 0" "" ""
 }
 
-gdb_test "break 14" ".*Breakpoint 2.*"           "break  do_loops"
+set bp_location1 [gdb_get_line_number "set breakpoint 1 here"]
+gdb_test "break $bp_location1" ".*Breakpoint 2.*"           "break  do_loops"
 gdb_test "cont"     ".*Breakpoint 2, do_loops.*" "get to do_loops"
 
 # Create stopping points.
 #
 gdb_test "watch sum"    ".*\[Ww\]atchpoint 3: sum.*" "set watch"
-gdb_test "break 19"     ".*Breakpoint 4.*" "break 19"
+set bp_location2 [gdb_get_line_number "set breakpoint 2 here"]
+gdb_test "break $bp_location2"     ".*Breakpoint 4.*" "break loop end"
 
 # Create displays for those points
 #
@@ -161,9 +163,10 @@ gdb_expect {
     }
 }
 
-gdb_test "step"      ".*do_vars.*.*27.*"
-gdb_test "tbreak 37" ".*breakpoint 5 a.*"
-gdb_test "cont"      ".*do_vars.*37.*37.*"
+gdb_test "step"      ".*do_vars.*.*i = 9.*"
+set bp_location3 [gdb_get_line_number "set breakpoint 3 here"]
+gdb_test "tbreak $bp_location3" ".*breakpoint 5 a.*" "tbreak in do_vars"
+gdb_test "cont"      ".*do_vars.*$bp_location3.*$bp_location3.*"
 
 # Beat on printf a bit
 #
index 6e77886..d993876 100644 (file)
@@ -101,7 +101,12 @@ proc test_p_x_ref_addr { var addr } {
     gdb_test_multiple $test $test {
         -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
            pass $test
-       } 
+       }
+       -re "Attempt to take address of value not located in memory.*$gdb_prompt $" {
+           # The reference might be in a register.  At least we parsed
+           # correctly...
+           pass $test
+       }
        -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" {
             fail "$test (prints unexpected address)"
         }