]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/testsuite: small fix for amd64-extended-prologue-analysis.exp
authorAndrew Burgess <aburgess@redhat.com>
Mon, 8 Sep 2025 09:18:09 +0000 (10:18 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Mon, 8 Sep 2025 09:18:09 +0000 (10:18 +0100)
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.

gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp

index b2fcbe66034e047f8294a6056a3d362919a5169b..356afc7e6688259af2b2c0af61ea03f8b8c3a9cb 100644 (file)
@@ -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
        }
     }