[binutils-gdb] gdb/testsuite: small fix for amd64-extended-prologue-analysis.exp

Andrew Burgess aburgess@sourceware.org
Mon Sep 8 09:24:37 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8735dae5139ecf2d3a79508371c9c861fde12c44

commit 8735dae5139ecf2d3a79508371c9c861fde12c44
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Mon Sep 8 10:18:09 2025 +0100

    gdb/testsuite: small fix for amd64-extended-prologue-analysis.exp
    
    I noticed I was sometimes getting this failure:
    
      FAIL: gdb.arch/amd64-extended-prologue-analysis.exp: offset \
          initialization: ASM source: gdb_breakpoint: set breakpoint \
          at *0x0000000000401151
    
    The problem was introduced in commit:
    
      commit f9aa48dc545ef511e19f4dfab88a196b820fd2da
      Date:   Thu Aug 28 11:50:13 2025 +0000
    
          gdb, amd64: extend the amd64 prologue analyzer to skip register pushes
    
    A gdb_test_multiple exits early when processing the results of a
    'disassemble' command, without waiting for the prompt to be seen.
    This can leave unhandled output in expect's input buffer, which will
    then throw off the next test.
    
    Update the gdb_test_multiple to wait for the prompt before declaring
    the test passed.
    
    After this I'm no longer seeing the above failure.
    
    There should be no change in what is tested after this commit.

Diff:
---
 gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp
index b2fcbe66034..356afc7e668 100644
--- a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp
@@ -59,9 +59,13 @@ proc offset_test_run {} {
 
     set addr_past_prologue "null"
     gdb_test_multiple "disassemble" "Disassemble foo" -lbl {
-	-re "($::hex) <\\+($::decimal)>:\\s*mov.*" {
+	-re "\r\n\\s*($::hex) <\\+($::decimal)>:\\s*mov.*(?=\r\n)" {
 	    set addr_past_prologue $expect_out(1,string)
-	    pass $gdb_test_name
+	    exp_continue
+	}
+
+	-re -wrap "" {
+	    gdb_assert { $addr_past_prologue ne "null" } $gdb_test_name
 	}
     }


More information about the Gdb-cvs mailing list