[pushed] gdb/testsuite: remove spurious $ in save_vars
Checks
Commit Message
I noticed that running the whole testsuite in serial mode (which means
all the .exp files are ran in the same TCL environment, one after the
other) with the native-extended-gdbserver board caused some weird
failures, for instance a lot of internal errors in the reverse tests,
like:
continue^M
Continuing.^M
/home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/deb12-amd64/target_board/native-extended-gdbserver/src/binutils-gdb/gdb/remot e.c:6922: internal-error: resume: Assertion `scope_ptid == inferior_ptid' failed.^M
A problem internal to GDB has been detected,^M
further debugging may prove unreliable.^M
----- Backtrace -----^M
FAIL: gdb.reverse/break-precsave.exp: run to end of main (GDB internal error)
This only happens after running gdb.multi/attach-while-running.exp.
That test does not restore GDBFLAGS properly when it's done, it leaves
`-ex \"maint set target-non-stop on\""` in there, which breaks some
subsequent tests. The problem is that this line:
save_vars { $::GDBFLAGS } {
should not use a `$` before the variable name. Passes the content of
`::GDBFLAGS` to save_vars, which is not what we want. We want to pass
the `::GDBFLAGS` string. Fix that.
Change-Id: I5ad32c527795fd10d0d94020e4fd15cebaca3a77
---
gdb/testsuite/gdb.multi/attach-while-running.exp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
base-commit: a73afeff18db7304495bf7c42b25f3b93645b46f
Comments
On 1/15/24 14:09, Simon Marchi wrote:
> I noticed that running the whole testsuite in serial mode (which means
> all the .exp files are ran in the same TCL environment, one after the
> other) with the native-extended-gdbserver board caused some weird
> failures, for instance a lot of internal errors in the reverse tests,
> like:
>
> continue^M
> Continuing.^M
> /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/deb12-amd64/target_board/native-extended-gdbserver/src/binutils-gdb/gdb/remot e.c:6922: internal-error: resume: Assertion `scope_ptid == inferior_ptid' failed.^M
> A problem internal to GDB has been detected,^M
> further debugging may prove unreliable.^M
> ----- Backtrace -----^M
> FAIL: gdb.reverse/break-precsave.exp: run to end of main (GDB internal error)
Since hitting an internal error is always a GDB bug, I filed this bug
here (although I don't plan to work on it).
https://sourceware.org/bugzilla/show_bug.cgi?id=31246
Simon
@@ -43,7 +43,7 @@ if { [build_executable "failed to prepare" ${testfile} ${srcfile}] } {
}
proc do_test {} {
- save_vars { $::GDBFLAGS } {
+ save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maint set target-non-stop on\""
clean_restart $::binfile
}