2011-06-28 Yao Qi <yao@codesourcery.com>
authorYao Qi <yao@codesourcery.com>
Tue, 28 Jun 2011 08:36:18 +0000 (08:36 +0000)
committerYao Qi <yao@codesourcery.com>
Tue, 28 Jun 2011 08:36:18 +0000 (08:36 +0000)
* 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
gdb/testsuite/gdb.cp/exception.cc
gdb/testsuite/gdb.cp/exception.exp

index aa9c4f57c2c2e30cc2d873b730a3b25e35189dd3..5a325dfaf6640ec346058f0e34153f33963458f5 100644 (file)
@@ -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
index 4ce7756aad52d6de8c5f344806ebcc97fba1d175..003afbb63c1e905e96eac62e5a9c2455bba75c09 100644 (file)
@@ -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 
index d055d3c7f99a2f4b94a76d84682fe197617f5f1e..50759cde21d68b3690c8bdc0524c7b511b455ef7 100644 (file)
@@ -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: