summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2008-09-04 03:59:02 +0000
committerMichael Snyder <msnyder@specifix.com>2008-09-04 03:59:02 +0000
commit2e352ef76d5ba40671a05dfadcfb275221fddd0b (patch)
tree2a02db6a825cb3ba862e6bcb721e426b4eaec03e
parentabac16ba228d7a271bd8e8d411c52f869ba1008b (diff)
downloadgdb-2e352ef76d5ba40671a05dfadcfb275221fddd0b.tar.gz
2008-09-03 Michael Snyder <msnyder@vmware.com>
* gdb.twreverse/step-reverse.exp: Add tests for reverse stepi thru a function call (back to caller). * gdb.twreverse/step-reverse.c: Ditto.
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.twreverse/step-reverse.c2
-rw-r--r--gdb/testsuite/gdb.twreverse/step-reverse.exp50
3 files changed, 51 insertions, 5 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6ec4af60e65..423721d2ee5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2008-09-03 Michael Snyder <msnyder@vmware.com>
+ * gdb.twreverse/step-reverse.exp: Add tests for reverse stepi
+ thru a function call (back to caller).
+ * gdb.twreverse/step-reverse.c: Ditto.
+
* gdb.twreverse/step-reverse.exp: Add tests for reverse stepi.
* gdb.twreverse/step-reverse.c: Ditto.
diff --git a/gdb/testsuite/gdb.twreverse/step-reverse.c b/gdb/testsuite/gdb.twreverse/step-reverse.c
index 71dc4ff50bb..6f5c797e496 100644
--- a/gdb/testsuite/gdb.twreverse/step-reverse.c
+++ b/gdb/testsuite/gdb.twreverse/step-reverse.c
@@ -5,7 +5,7 @@
*/
int myglob = 0;
-int callee() {
+int callee() { /* ENTER CALLEE */
myglob++; return 0; /* ARRIVED IN CALLEE */
} /* RETURN FROM CALLEE */
diff --git a/gdb/testsuite/gdb.twreverse/step-reverse.exp b/gdb/testsuite/gdb.twreverse/step-reverse.exp
index d8132085ff6..d04a2f38685 100644
--- a/gdb/testsuite/gdb.twreverse/step-reverse.exp
+++ b/gdb/testsuite/gdb.twreverse/step-reverse.exp
@@ -25,6 +25,8 @@ if { [prepare_for_testing step-reverse.exp step-reverse step-reverse.c] } {
return -1
}
+global hex
+
runto main
# Activate record/replay
@@ -66,7 +68,7 @@ gdb_test_multiple "finish" "$test_message" {
# stepi over flat code (no calls)
-set test_message "stepi test 1"
+set test_message "simple stepi"
gdb_test_multiple "stepi" "$test_message" {
-re "FINISH TEST" {
send_gdb "stepi\n"
@@ -80,6 +82,25 @@ gdb_test_multiple "stepi" "$test_message" {
}
}
+# stepi into a function call
+
+set test_message "stepi into function call"
+gdb_test_multiple "stepi" "$test_message" {
+ -re "ARRIVED IN CALLEE" {
+ pass "$test_message"
+ }
+ -re "NEXTI TEST" {
+ fail "$test_message (too far)"
+ }
+ -re "RETURN FROM CALLEE" {
+ fail "$test_message (too far)"
+ }
+ -re "ENTER CALLEE" {
+ send_gdb "stepi\n"
+ exp_continue
+ }
+}
+
###
###
###
@@ -89,13 +110,34 @@ gdb_test_multiple "stepi" "$test_message" {
gdb_test "set exec-dir reverse" "" "set reverse execution"
-# stepi backward over flat code (no calls)
+# stepi backward out of a function call
set stepi_location [gdb_get_line_number "FINISH TEST" step-reverse.c]
+set test_message "reverse stepi from a function call"
+gdb_test_multiple "stepi" "$test_message" {
+ -re "ARRIVED IN CALLEE" {
+ fail "$test_message (start statement)"
+ }
+ -re "ENTER CALLEE" {
+ send_gdb "stepi\n"
+ exp_continue
+ }
+ -re "${hex}\[ \t\]*$stepi_location\[ \t\].*STEPI TEST" {
+ send_gdb "stepi\n"
+ exp_continue
+ }
+ -re "STEPI TEST" {
+ pass "$test_message"
+ }
+ -re "STEP INTO THIS CALL" {
+ fail "$test_message (too far)"
+ }
+}
-global hex
+# stepi backward over flat code (no calls)
-set test_message "reverse stepi test 1"
+set stepi_location [gdb_get_line_number "FINISH TEST" step-reverse.c]
+set test_message "simple reverse stepi"
gdb_test_multiple "stepi" "$test_message" {
-re "STEPI TEST" {
fail "$test_message (start statement)"