Fix gdb.reverse failures on mingw32-hosted GDB

Message ID 54621E69.8080200@codesourcery.com
State New, archived
Headers

Commit Message

Luis Machado Nov. 11, 2014, 2:34 p.m. UTC
  Hi,

I caught a few mingw32-specific failures for some of the gdb.reverse tests.

FAIL: gdb.reverse/consecutive-precsave.exp: reload precord save file
FAIL: gdb.reverse/finish-precsave.exp: reload precord save file
FAIL: gdb.reverse/until-precsave.exp: reload core file
FAIL: gdb.reverse/watch-precsave.exp: reload core file
FAIL: gdb.reverse/step-precsave.exp: reload core file
FAIL: gdb.reverse/break-precsave.exp: reload precord save file
FAIL: gdb.reverse/sigall-precsave.exp: reload precord save file

They happen for two reasons.

- mingw32 does not define SIGTRAP, so upon recording a core file, the 
signal information will be missing, which in turn causes GDB to not 
display the stopping signal when it loads the same core file. An earlier 
message warns about this:

"warning: Signal SIGTRAP does not exist on this system."

- The testcase is crafted in a way that expects a pattern of the 
stopping signal message instead of a successful core file read message.

The following patch fixes this by changing the old pattern to a more 
reasonable one, while still ignoring the fact that mingw32-based GDB 
does not record a SIGTRAP in a core file because it does not define it.

Sounds reasonable?

Regards,
Luis
  

Comments

Yao Qi Nov. 13, 2014, 12:38 p.m. UTC | #1
Luis Machado <lgustavo@codesourcery.com> writes:

> The following patch fixes this by changing the old pattern to a more
> reasonable one, while still ignoring the fact that mingw32-based GDB
> does not record a SIGTRAP in a core file because it does not define
> it.
>
> Sounds reasonable?
>
> Regards,
> Luis
>
> 2014-11-11  Luis Machado  <lgustavo@codesourcery.com>
>
> 	* gdb.reverse/break-precsave: Expect completion message for
> 	core file reads.
> 	* gdb.reverse/consecutive-precsave.exp: Likewise.
> 	* gdb.reverse/finish-precsave.exp: Likewise.
> 	* gdb.reverse/i386-precsave.exp: Likewise.
> 	* gdb.reverse/machinestate-precsave.exp: Likewise.
> 	* gdb.reverse/sigall-precsave.exp: Likewise.
> 	* gdb.reverse/solib-precsave.exp: Likewise.
> 	* gdb.reverse/step-precsave.exp: Likewise.
> 	* gdb.reverse/until-precsave.exp: Likewise.
> 	* gdb.reverse/watch-precsave.exp: Likewise.

This patch looks good to me.
  
Luis Machado Nov. 18, 2014, 1:20 p.m. UTC | #2
On 11/13/2014 10:38 AM, Yao Qi wrote:
> Luis Machado <lgustavo@codesourcery.com> writes:
>
>> The following patch fixes this by changing the old pattern to a more
>> reasonable one, while still ignoring the fact that mingw32-based GDB
>> does not record a SIGTRAP in a core file because it does not define
>> it.
>>
>> Sounds reasonable?
>>
>> Regards,
>> Luis
>>
>> 2014-11-11  Luis Machado  <lgustavo@codesourcery.com>
>>
>> 	* gdb.reverse/break-precsave: Expect completion message for
>> 	core file reads.
>> 	* gdb.reverse/consecutive-precsave.exp: Likewise.
>> 	* gdb.reverse/finish-precsave.exp: Likewise.
>> 	* gdb.reverse/i386-precsave.exp: Likewise.
>> 	* gdb.reverse/machinestate-precsave.exp: Likewise.
>> 	* gdb.reverse/sigall-precsave.exp: Likewise.
>> 	* gdb.reverse/solib-precsave.exp: Likewise.
>> 	* gdb.reverse/step-precsave.exp: Likewise.
>> 	* gdb.reverse/until-precsave.exp: Likewise.
>> 	* gdb.reverse/watch-precsave.exp: Likewise.
>
> This patch looks good to me.
>

Thanks. I just checked this in.

Luis
  

Patch

2014-11-11  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.reverse/break-precsave: Expect completion message for
	core file reads.
	* gdb.reverse/consecutive-precsave.exp: Likewise.
	* gdb.reverse/finish-precsave.exp: Likewise.
	* gdb.reverse/i386-precsave.exp: Likewise.
	* gdb.reverse/machinestate-precsave.exp: Likewise.
	* gdb.reverse/sigall-precsave.exp: Likewise.
	* gdb.reverse/solib-precsave.exp: Likewise.
	* gdb.reverse/step-precsave.exp: Likewise.
	* gdb.reverse/until-precsave.exp: Likewise.
	* gdb.reverse/watch-precsave.exp: Likewise.

diff --git a/gdb/testsuite/gdb.reverse/break-precsave.exp b/gdb/testsuite/gdb.reverse/break-precsave.exp
index f77054c..21c2ed2 100644
--- a/gdb/testsuite/gdb.reverse/break-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/break-precsave.exp
@@ -58,7 +58,7 @@  proc precsave_tests {} {
 	"Kill the program being debugged\\? \\(y or n\\) " "y"
 
     gdb_test "record restore $precsave" \
-	"Program terminated with signal .*" \
+	"Restored records from core file .*" \
 	"reload precord save file"
 
     gdb_test "break foo" \
diff --git a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
index 43e9d77..68c05d5 100644
--- a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
@@ -50,7 +50,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload precord save file"
 
 gdb_breakpoint foo
diff --git a/gdb/testsuite/gdb.reverse/finish-precsave.exp b/gdb/testsuite/gdb.reverse/finish-precsave.exp
index 22c32e4..a103855 100644
--- a/gdb/testsuite/gdb.reverse/finish-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/finish-precsave.exp
@@ -51,7 +51,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload precord save file"
 
 # Test finish from void func
diff --git a/gdb/testsuite/gdb.reverse/i386-precsave.exp b/gdb/testsuite/gdb.reverse/i386-precsave.exp
index 8b713fd..41c6beb 100644
--- a/gdb/testsuite/gdb.reverse/i386-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/i386-precsave.exp
@@ -68,7 +68,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload precord save file"
 
 gdb_test "step" "inc .eax.*" "step to inc eax 1st time"
diff --git a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
index 3b62dc9..b726bc3 100644
--- a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
@@ -76,7 +76,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload prec save file"
 
 # Proceed to end of main
diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
index e7ade6e..b04223c 100644
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -278,7 +278,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload precord save file"
 
 # Signal handlers must be re-enabled
diff --git a/gdb/testsuite/gdb.reverse/solib-precsave.exp b/gdb/testsuite/gdb.reverse/solib-precsave.exp
index f8f78a5..6218964 100644
--- a/gdb/testsuite/gdb.reverse/solib-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/solib-precsave.exp
@@ -101,7 +101,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload core file"
 
 #
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index 6f52e58..3b0e356 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -54,7 +54,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload core file"
 
 # plain vanilla step/next (no count)
diff --git a/gdb/testsuite/gdb.reverse/until-precsave.exp b/gdb/testsuite/gdb.reverse/until-precsave.exp
index db643fa..4dfffb2 100644
--- a/gdb/testsuite/gdb.reverse/until-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/until-precsave.exp
@@ -70,7 +70,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload core file"
 
 # Verify that plain vanilla "until <location>" works.
diff --git a/gdb/testsuite/gdb.reverse/watch-precsave.exp b/gdb/testsuite/gdb.reverse/watch-precsave.exp
index 5fe1296..d33d7ea 100644
--- a/gdb/testsuite/gdb.reverse/watch-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/watch-precsave.exp
@@ -51,7 +51,7 @@  gdb_test "kill" "" "Kill process, prepare to debug log file" \
     "Kill the program being debugged\\? \\(y or n\\) " "y"
 
 gdb_test "record restore $precsave" \
-    "Program terminated with signal .*" \
+    "Restored records from core file .*" \
     "reload core file"
 
 # Only software watchpoints can be used in reverse