[gdb/testsuite] Fix regexp in gdb.arch/i386-disp-step-self-call.exp

Usually, with test-case gdb.arch/i386-disp-step-self-call.exp I get:
...
(gdb) x/1wx 0xffffc4f8^M
0xffffc4f8:     0x08048472^M
(gdb) PASS: $exp: check return address was updated correctly
...
but sometimes I run into:
...
(gdb) x/1wx 0xffffc5c8^M
0xffffc5c8:     0x0804917e^M
(gdb) FAIL: $exp: check return address was updated correctly
...

The problem is that here:
...
set next_insn_addr 0x[format %08X $next_insn_addr]
gdb_test "x/1wx 0x[format %x $sp]" "$hex:\\s+$next_insn_addr" \
    "check return address was updated correctly"
...
we're trying to match string 0x0804917e against regexp 0x0804917E due to using
"%08X" as format string.

We only run into this problem if the address contains letters, which apparently
usually isn't the case.

Fix this by using "%08x" instead as format string.

Likewise in test-case gdb.arch/amd64-disp-step-self-call.exp.

Tested on x86_64-linux.

PR testsuite/32121
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32121
This commit is contained in:
Tom de Vries
2024-08-29 07:31:12 +02:00
parent 5cca20f614
commit b55b65bc56
2 changed files with 2 additions and 2 deletions

View File

@@ -77,6 +77,6 @@ gdb_assert {[expr $sp == $new_sp]} \
"check stack pointer was updated as expected"
# Check the contents of the stack were updated to the expected value.
set next_insn_addr 0x[format %016X $next_insn_addr]
set next_insn_addr 0x[format %016x $next_insn_addr]
gdb_test "x/1gx 0x[format %x $sp]" "$hex:\\s+$next_insn_addr" \
"check return address was updated correctly"

View File

@@ -77,6 +77,6 @@ gdb_assert {[expr $sp == $new_sp]} \
"check stack pointer was updated as expected"
# Check the contents of the stack were updated to the expected value.
set next_insn_addr 0x[format %08X $next_insn_addr]
set next_insn_addr 0x[format %08x $next_insn_addr]
gdb_test "x/1wx 0x[format %x $sp]" "$hex:\\s+$next_insn_addr" \
"check return address was updated correctly"