diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/sigaltstack.exp | 29 |
2 files changed, 28 insertions, 7 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3cc7d2a..c373022 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2004-08-08 Daniel Jacobowitz <dan@debian.org> + PR gdb/1736 + * gdb.base/sigaltstack.exp (finish_test): New procedure. KFAIL + for i?86-*-linux*. + +2004-08-08 Daniel Jacobowitz <dan@debian.org> + * gdb.arch/i386-prologue.exp: Compile without debug information. 2004-08-08 Michael Chastain <mec.gnu@mindspring.com> diff --git a/gdb/testsuite/gdb.base/sigaltstack.exp b/gdb/testsuite/gdb.base/sigaltstack.exp index 8f09ccf..3b32d08 100644 --- a/gdb/testsuite/gdb.base/sigaltstack.exp +++ b/gdb/testsuite/gdb.base/sigaltstack.exp @@ -78,11 +78,26 @@ gdb_expect_list "backtrace" ".*$gdb_prompt $" { "\[\r\n\]+.7 \[^\r\n\]* main .*" } +proc finish_test { pattern msg } { + gdb_test_multiple "finish" $msg { + -re "Cannot insert breakpoint 0" { + # Some platforms use a special read-only page for signal + # trampolines. We can't set a breakpoint there, and we + # don't gracefully fall back to single-stepping. + setup_kfail "i?86-*-linux*" gdb/1736 + fail "$msg (could not set breakpoint)" + } + -re "$pattern" { + pass $msg + } + } +} + # Finish? -gdb_test "finish" "signal handler called." "finish from catch LEAF" -gdb_test "finish" "thrower .next_level=INNER, .*" "finish to throw INNER" -gdb_test "finish" "catcher .*" "finish to catch INNER" -gdb_test "finish" "signal handler called.*" "finish from catch INNER" -gdb_test "finish" "thrower .next_level=OUTER, .*" "finish to OUTER" -gdb_test "finish" "catcher .*" "finish to catch MAIN" -gdb_test "finish" "main .*" "finish to MAIN" +finish_test "signal handler called." "finish from catch LEAF" +finish_test "thrower .next_level=INNER, .*" "finish to throw INNER" +finish_test "catcher .*" "finish to catch INNER" +finish_test "signal handler called.*" "finish from catch INNER" +finish_test "thrower .next_level=OUTER, .*" "finish to OUTER" +finish_test "catcher .*" "finish to catch MAIN" +finish_test "main .*" "finish to MAIN" |