summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.cp
diff options
context:
space:
mode:
authorqiyao <qiyao>2011-06-28 08:36:18 +0000
committerqiyao <qiyao>2011-06-28 08:36:18 +0000
commitc73e93cbd7c6effee5bd87d622e5981986b783a5 (patch)
tree607dc237fec10a7566b3085ed6c3de51d642196b /gdb/testsuite/gdb.cp
parente0320bfc04bdf9867e3b3668f938569ec6210d33 (diff)
downloadgdb-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.cc13
-rw-r--r--gdb/testsuite/gdb.cp/exception.exp12
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: