From af69a5cef74c0fee461cf1dcae8abfe28dd0ca05 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Tue, 28 Jun 2011 08:36:18 +0000 Subject: [PATCH] 2011-06-28 Yao Qi * gdb.cp/exception.cc: Don't include iostream. (bar): Remove print statement. (catcher): New. (main): Remove print statements. Call function catcher. * gdb.cp/exception.exp : Don't match inferior's output in regexp. Set breakpoint on catcher, and check the value of parameter. --- gdb/testsuite/ChangeLog | 9 +++++++++ gdb/testsuite/gdb.cp/exception.cc | 13 ++++++++----- gdb/testsuite/gdb.cp/exception.exp | 12 ++++++++++-- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index aa9c4f57c2c..5a325dfaf66 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2011-06-28 Yao Qi + + * gdb.cp/exception.cc: Don't include iostream. + (bar): Remove print statement. + (catcher): New. + (main): Remove print statements. Call function catcher. + * gdb.cp/exception.exp : Don't match inferior's output in regexp. + Set breakpoint on catcher, and check the value of parameter. + 2011-06-23 Yao Qi * gdb.cp/mb-inline.exp: Parse the output of `info break' to check breakpoint diff --git a/gdb/testsuite/gdb.cp/exception.cc b/gdb/testsuite/gdb.cp/exception.cc index 4ce7756aad5..003afbb63c1 100644 --- a/gdb/testsuite/gdb.cp/exception.cc +++ b/gdb/testsuite/gdb.cp/exception.cc @@ -21,7 +21,6 @@ // Test file for exception handling support. -#include using namespace std; int foo (int i) @@ -36,10 +35,14 @@ extern "C" int bar (int k, unsigned long eharg, int flag); int bar (int k, unsigned long eharg, int flag) { - cout << "k is " << k << " eharg is " << eharg << " flag is " << flag << endl; return 1; } +int catcher (int x) +{ + return x; +} + int main() { int j; @@ -48,7 +51,7 @@ int main() j = foo (20); } catch (int x) { - cout << "Got an except " << x << endl; + catcher (x); } try { @@ -56,12 +59,12 @@ int main() j = foo (20); } catch (int x) { - cout << "Got an except " << x << endl; + catcher (x); throw; } } catch (int y) { - cout << "Got an except (rethrown) " << y << endl; + catcher (y); } // Not caught diff --git a/gdb/testsuite/gdb.cp/exception.exp b/gdb/testsuite/gdb.cp/exception.exp index d055d3c7f99..50759cde21d 100644 --- a/gdb/testsuite/gdb.cp/exception.exp +++ b/gdb/testsuite/gdb.cp/exception.exp @@ -127,6 +127,8 @@ gdb_test_multiple "info breakpoints" $name { } } +gdb_test "break catcher" "Breakpoint \[0-9\]+ at.*" + # Get the first exception thrown set name "continue to first throw" @@ -173,14 +175,17 @@ gdb_test_multiple "backtrace" $name { } } +# Continue to breakpoint on catcher. +gdb_test "continue" ".*catcher \\(x=13\\).*" "continue to catcher for the first time" + # Continue to second throw. set name "continue to second throw" gdb_test_multiple "continue" $name { - -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" { + -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" { pass $name } - -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\).*\r\n$gdb_prompt $" { + -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\).*\r\n$gdb_prompt $" { pass $name } } @@ -217,6 +222,9 @@ gdb_test_multiple "backtrace" $name { } } +# Continue to breakpoint on catcher. +gdb_test "continue" ".*catcher \\(x=13\\).*" "continue to catcher for the second time" + # That is all for now. # # The original code had: -- 2.30.2