diff options
author | qiyao <qiyao> | 2011-06-28 08:36:18 +0000 |
---|---|---|
committer | qiyao <qiyao> | 2011-06-28 08:36:18 +0000 |
commit | c73e93cbd7c6effee5bd87d622e5981986b783a5 (patch) | |
tree | 607dc237fec10a7566b3085ed6c3de51d642196b /gdb/testsuite/gdb.cp | |
parent | e0320bfc04bdf9867e3b3668f938569ec6210d33 (diff) | |
download | gdb-c73e93cbd7c6effee5bd87d622e5981986b783a5.tar.gz |
2011-06-28 Yao Qi <yao@codesourcery.com>
* 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.
Diffstat (limited to 'gdb/testsuite/gdb.cp')
-rw-r--r-- | gdb/testsuite/gdb.cp/exception.cc | 13 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/exception.exp | 12 |
2 files changed, 18 insertions, 7 deletions
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 <iostream> 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: |