[PATCH 1/7] [gdb/testsuite] allow more registers in reader test

Simon Marchi simark@simark.ca
Sun Mar 22 02:09:36 GMT 2020


On 2020-03-21 12:03 p.m., Simon Marchi wrote:
> On 2020-02-18 7:43 a.m., Mihails Strasuns wrote:
>> Fixes jit-reader test failures on systems that have more registers than
>> expected by the current condition.
>>
>> gdb/testsuite/ChangeLog:
>>
>> 2020-02-18  Mihails Strasuns  <mihails.strasuns@intel.com>
>>
>> 	* gdb.base/jit-reader.exp: relax register output check
>>
>> Signed-off-by: Mihails Strasuns <mihails.strasuns@intel.com>
>> Change-Id: I227ab8691b2363d626f7100216477ab637f619fa
> 
> This is fine with me too, but could you please just quote in the commit message what
> are the extra registers you see?  And maybe what hardware/cpu you run on, to help
> anybody who would like to replicate what you are seeing.
> 
> Thanks,
> 
> Simon
> 

Hmm, in fact, I now get some failures, which I don't get before:

Running /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/jit-reader.exp ...
FAIL: gdb.base/jit-reader.exp: with jit-reader: after mangling: current frame: info registers
FAIL: gdb.base/jit-reader.exp: with jit-reader: after mangling: caller frame: info registers
FAIL: gdb.base/jit-reader.exp: without jit-reader: info registers

The reason is that the regexp generated by multi_line mandates another line after the `gs` line.
It ends something like this:

    ...gs             $hex +$neg_decimal\r\n.*\r\n

If you don't have any line after the `gs` line, the regexp won't match.

multi_line just returns regexp as a string, so you can just append .* after it.  I would suggest
integrating the change below in your patch.


>From 9a32960dfa05b322fd873aedc9768a8dd721acd6 Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>
Date: Sat, 21 Mar 2020 22:06:36 -0400
Subject: [PATCH] fixup

---
 gdb/testsuite/gdb.base/jit-reader.exp | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base/jit-reader.exp
index 5140e3d9306b..8663f0021def 100644
--- a/gdb/testsuite/gdb.base/jit-reader.exp
+++ b/gdb/testsuite/gdb.base/jit-reader.exp
@@ -66,7 +66,8 @@ proc info_registers_current_frame {sp} {
     set any "\[^\r\n\]*"

     set neg_decimal "-?$decimal"
-    gdb_test "info registers" \
+
+    set expected \
 	[multi_line \
 	     "rax            $hex +$neg_decimal" \
 	     "rbx            $hex +$neg_decimal" \
@@ -92,8 +93,12 @@ proc info_registers_current_frame {sp} {
 	     "es             $hex +$neg_decimal" \
 	     "fs             $hex +$neg_decimal" \
 	     "gs             $hex +$neg_decimal" \
-	     ".*" \
 	    ]
+
+    # There may be more registers.
+    append expected ".*"
+
+    gdb_test "info registers" $expected
 }

 proc jit_reader_test {} {
@@ -171,7 +176,8 @@ proc jit_reader_test {} {

 		# Since the JIT unwinder only provides RIP/RSP/RBP,
 		# all other registers should show as "<not saved>".
-		gdb_test "info registers" \
+
+		set expected \
 		    [multi_line \
 			 "rax            <not saved>" \
 			 "rbx            <not saved>" \
@@ -197,9 +203,13 @@ proc jit_reader_test {} {
 			 "es             <not saved>" \
 			 "fs             <not saved>" \
 			 "gs             <not saved>" \
-			 ".*" \
 			]

+		# There may be more registers.
+		append expected ".*"
+
+		gdb_test "info registers" $expected
+
 		# Make sure that "info frame" doesn't crash.
 		gdb_test "info frame" "Stack level 1, .*in main.*"

-- 
2.25.2



More information about the Gdb-patches mailing list