aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2011-06-28 08:36:18 +0000
committerYao Qi <yao@codesourcery.com>2011-06-28 08:36:18 +0000
commitaf69a5cef74c0fee461cf1dcae8abfe28dd0ca05 (patch)
treef200cebc7039c7906418721db03734ca42cc7d64 /gdb
parent9b02d212412d53a8d7e85f5824b1813a9f0a18eb (diff)
downloadgdb-af69a5cef74c0fee461cf1dcae8abfe28dd0ca05.zip
gdb-af69a5cef74c0fee461cf1dcae8abfe28dd0ca05.tar.gz
gdb-af69a5cef74c0fee461cf1dcae8abfe28dd0ca05.tar.bz2
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')
-rw-r--r--gdb/testsuite/ChangeLog9
-rw-r--r--gdb/testsuite/gdb.cp/exception.cc13
-rw-r--r--gdb/testsuite/gdb.cp/exception.exp12
3 files changed, 27 insertions, 7 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index aa9c4f5..5a325df 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+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.
+
2011-06-23 Yao Qi <yao@codesourcery.com>
* 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 4ce7756..003afbb 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 d055d3c..50759cd 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: