This test fails on my machine:
p /x $pc^M
$2 = 0x55555555514e^M
(gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=off: get after PC
FAIL: gdb.base/step-over-no-symbols.exp: displaced=off: advanced
This is due to the check added in
5f0e2eb79e6b ("GDB/testsuite: Fix a
catastrophic step-over-no-symbols.exp failure"), that makes sure the PC
values are integer. As documented in the TCL doc [1], "string is
integer" returns 1 if the string is a valid 32-bit integer format. The
PC values are greater than 32 bits, so are not recognized as integers by
that test.
% string is integer -strict 0x55555555
1
% string is integer -strict 0x555555555
0
Replace the "string is integer" test with a regexp one, that verifies
the PC is a hex value.
[1] https://www.tcl.tk/man/tcl/TclCmd/string.htm#M21
gdb/testsuite/ChangeLog:
* gdb.base/step-over-no-symbols.exp (test_step_over): Replace
integer format test with regexp.
Change-Id: I71f8197e7b52e97b4901980544a8d1072aabd362
+2020-11-02 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * gdb.base/step-over-no-symbols.exp (test_step_over): Replace
+ integer format test with regexp.
+
2020-11-02 Gary Benson <gbenson@redhat.com>
* gdb.base/print-file-var.exp (test): Separate compiler and
set after_addr [get_pc "get after PC"]
- gdb_assert {{[string is integer -strict $before_addr] \
- && [string is integer -strict $after_addr] \
+ gdb_assert {{[regexp "^${hex}$" $before_addr] \
+ && [regexp "^${hex}$" $after_addr] \
&& $before_addr != $after_addr}} "advanced"
}