aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2006-11-27 15:09:54 +0000
committerNathan Sidwell <nathan@codesourcery.com>2006-11-27 15:09:54 +0000
commit697bc68de82025ca587649117ee8db2826200d98 (patch)
treef6b47dbfc5d9eb6dce9f86b890500e815e49c801 /gdb
parentc897d1a2e7381e5e6b4851d591dac375756fb5ba (diff)
downloadgdb-697bc68de82025ca587649117ee8db2826200d98.zip
gdb-697bc68de82025ca587649117ee8db2826200d98.tar.gz
gdb-697bc68de82025ca587649117ee8db2826200d98.tar.bz2
* gdb.base/ending-run.exp: Flatten expect script stepping out of
main to remove duplication. Add start function of the form '_*start[1-9]*'. Add RVDS start function.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.base/ending-run.exp123
2 files changed, 66 insertions, 65 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index c3836c7..f18f0f9 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2006-11-27 Nathan Sidwell <nathan@codesourcery.com>
+ Paul Brook <paul@codesourcery.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+
+ * gdb.base/ending-run.exp: Flatten expect script stepping out of
+ main to remove duplication. Add start function of the form
+ '_*start[1-9]*'. Add RVDS start function.
+
2006-11-22 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.arch/thumb-prologue.c, gdb.arch/thumb-prologue.exp: New files.
diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
index c2dd10e..88d5f34 100644
--- a/gdb/testsuite/gdb.base/ending-run.exp
+++ b/gdb/testsuite/gdb.base/ending-run.exp
@@ -153,90 +153,83 @@ set old_timeout $timeout
set timeout 50
set program_exited 0
send_gdb "next\n"
+set nexted 0
gdb_expect {
-re "33.*$gdb_prompt $" {
# sometimes we stop at the closing brace, if so, do another next
- send_gdb "next\n"
- gdb_expect {
- -re ".*Unable to find return pc for this frame.*$gdb_prompt $" {
- fail "step out of main (Old bug came back!)"
- gdb_test "n" ".*" ""
- }
- -re ".*in.*start.*$gdb_prompt $" {
- pass "step out of main"
- }
- -re ".*in.*bsp_trap.*$gdb_prompt $" {
- pass "step out of main"
- }
- -re ".*in.*init.*$gdb_prompt $" {
- # This is what happens on sparc64-elf ultra.
- pass "step out of main"
- }
- -re ".*in.*dll_crt0_1.*$gdb_prompt $" {
- # This is what happens on Cygwin.
- pass "step out of main"
- }
- -re ".*Program exited normally.*$gdb_prompt $" {
- # This is what happens on Linux i86 (and I would expect others)
- set program_exited 1
- pass "step out of main"
- }
- -re ".*in .nope ().*$gdb_prompt $" {
- # This is what happens on Solaris currently -sts 1999-08-25
- pass "step out of main (on Solaris)"
- }
- -re ".*in _int_reset ().*$gdb_prompt $" {
- # This is what happens on Sanyo XStormy16
- pass "step out of main"
- }
- -re ".*init ().*$gdb_prompt $" {
- # This is what happens on many Mips targets
- pass "step out of main"
- }
- -re ".*in ..change.mode ().*$gdb_prompt $" {
- # This is what happens on ARM in thumb mode -fn 2000-02-01
- pass "step out of main (on ARM thumb)"
- }
- -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" {
- pass "step out of main"
- }
- -re ".*in __wrap__?main ().*$gdb_prompt $" {
- pass "step out of main (status wrapper)"
- }
- -re "__setup_argv_for_main (.*).*$gdb_prompt $" {
- # On sh, another wrapper function (start_l) exists, so
- # another `next' is necessary.
- gdb_test "next" ".*in start_l ().*" "step out of main (on sh)"
- }
- -re ".*$gdb_prompt $" { fail "step out of main (at end 2)" }
- timeout {
- fail "step out of main (hang or timeout on step at end 2)"
- }
+ if { $nexted } {
+ fail "step out of main"
+ } else {
+ set nexted 1
+ send_gdb "next\n"
+ exp_continue
}
}
-re ".*Unable to find return pc for this frame.*$gdb_prompt $" {
- fail "Old bug came back!"
- gdb_test "n" ".*" ""
+ fail "step out of main"
+ gdb_test "n" ".*" ""
}
-re ".*in.*start.*$gdb_prompt $" {
- pass "step out of main"
+ pass "step out of main"
}
- -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" {
- pass "step out of main (2)"
+ -re ".*in.*bsp_trap.*$gdb_prompt $" {
+ pass "step out of main"
+ }
+ -re ".*in.*init.*$gdb_prompt $" {
+ # This is what happens on sparc64-elf ultra.
+ pass "step out of main"
+ }
+ -re ".*in.*dll_crt0_1.*$gdb_prompt $" {
+ # This is what happens on Cygwin.
+ pass "step out of main"
}
-re ".*Program exited normally.*$gdb_prompt $" {
# This is what happens on Linux i86 (and I would expect others)
set program_exited 1
pass "step out of main"
}
+ -re ".*in .nope ().*$gdb_prompt $" {
+ # This is what happens on Solaris currently -sts 1999-08-25
+ pass "step out of main"
+ }
+ -re ".*in _int_reset ().*$gdb_prompt $" {
+ # This is what happens on Sanyo XStormy16
+ pass "step out of main"
+ }
+ -re ".*init ().*$gdb_prompt $" {
+ # This is what happens on many Mips targets
+ pass "step out of main"
+ }
+ -re ".*in ..change.mode ().*$gdb_prompt $" {
+ # This is what happens on ARM in thumb mode -fn 2000-02-01
+ pass "step out of main"
+ }
+ -re ".*__rt_entry ().*$gdb_prompt $" {
+ # This is what happens on the ARM RVDS runtime
+ pass "step out of main"
+ }
+ -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" {
+ pass "step out of main"
+ }
+ -re ".*in __wrap__?main ().*$gdb_prompt $" {
+ pass "step out of main"
+ }
+ -re "__setup_argv_for_main (.*).*$gdb_prompt $" {
+ # On sh, another wrapper function (start_l) exists, so
+ # another `next' is necessary.
+ gdb_test "next" ".*in start_l ().*" "step out of main"
+ }
-re ".*in.*currently asm.*$gdb_prompt $" {
- pass "step out of main (into assembler)"
+ pass "step out of main"
+ }
+ -re "_*start\[0-9\]* \\(\[^)\]*\\).*$gdb_prompt $" {
+ pass "step out of main"
}
-re ".*Program received signal SIGTRAP.*$gdb_prompt $" {
- pass "Cygmon stopped in ending trap."
+ pass "step out of main"
}
- -re ".*$gdb_prompt $" { fail "step out of main (at end 1)" }
- timeout { fail "step out of main (hang or timeout on step at end 1)" }
+ -re ".*$gdb_prompt $" { fail "step out of main" }
+ timeout { fail "step out of main" }
}
# When we're talking to a program running on a real stand-alone board,