From 49d4f60c2ea076923e63a1e92f9e4f41e62e3146 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Sun, 8 Aug 2004 23:14:33 +0000 Subject: [PATCH] PR gdb/1736 * gdb.base/sigaltstack.exp (finish_test): New procedure. KFAIL for i?86-*-linux*. --- gdb/testsuite/ChangeLog | 6 ++++++ 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 3cc7d2a4c5..c373022c14 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2004-08-08 Daniel Jacobowitz + PR gdb/1736 + * gdb.base/sigaltstack.exp (finish_test): New procedure. KFAIL + for i?86-*-linux*. + +2004-08-08 Daniel Jacobowitz + * gdb.arch/i386-prologue.exp: Compile without debug information. 2004-08-08 Michael Chastain diff --git a/gdb/testsuite/gdb.base/sigaltstack.exp b/gdb/testsuite/gdb.base/sigaltstack.exp index 8f09ccf572..3b32d08d75 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" -- 2.11.0