aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2009-11-13 21:59:00 +0000
committerDaniel Jacobowitz <drow@false.org>2009-11-13 21:59:00 +0000
commit7cbcbded71b7da1f31f63ac3cb5705249e5e4887 (patch)
tree6b29c6cbb28ebf0caa2b79045a41170249409e94 /gdb/testsuite
parentf16cd0d502d32721849ec650d4dfda17fb530066 (diff)
downloadgdb-7cbcbded71b7da1f31f63ac3cb5705249e5e4887.zip
gdb-7cbcbded71b7da1f31f63ac3cb5705249e5e4887.tar.gz
gdb-7cbcbded71b7da1f31f63ac3cb5705249e5e4887.tar.bz2
gdb/testsuite/
* 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.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog10
-rw-r--r--gdb/testsuite/gdb.base/display.c11
-rw-r--r--gdb/testsuite/gdb.base/display.exp13
-rw-r--r--gdb/testsuite/gdb.cp/formatted-ref.exp7
4 files changed, 31 insertions, 10 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a8696cc..5f97eb8 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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
diff --git a/gdb/testsuite/gdb.base/display.c b/gdb/testsuite/gdb.base/display.c
index 3652409..332c45b 100644
--- a/gdb/testsuite/gdb.base/display.c
+++ b/gdb/testsuite/gdb.base/display.c
@@ -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 {
diff --git a/gdb/testsuite/gdb.base/display.exp b/gdb/testsuite/gdb.base/display.exp
index 174c53f..9839705 100644
--- a/gdb/testsuite/gdb.base/display.exp
+++ b/gdb/testsuite/gdb.base/display.exp
@@ -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
#
diff --git a/gdb/testsuite/gdb.cp/formatted-ref.exp b/gdb/testsuite/gdb.cp/formatted-ref.exp
index 6e77886..d993876 100644
--- a/gdb/testsuite/gdb.cp/formatted-ref.exp
+++ b/gdb/testsuite/gdb.cp/formatted-ref.exp
@@ -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)"
}