[gdb/testsuite] Fix can_spawn_for_attach_1 consistency check

When running test-case gdb.testsuite/gdb-caching-proc-consistency.exp with
target board native-gdbserver, we run into:
...
(gdb) ERROR: tcl error sourcing gdb.testsuite/gdb-caching-proc-consistency.exp.
ERROR: gdbserver does not support attach 4827 without extended-remote
    while executing
"error "gdbserver does not support $command without extended-remote""
    (procedure "gdb_test_multiple" line 51)
    invoked from within
"gdb_test_multiple "attach $test_pid" "can spawn for attach" {
        -re -wrap "$attaching_re\r\n.*ptrace: Operation not permitted\\." {
            # Not permitte..."
    (procedure "gdb_real__can_spawn_for_attach_1" line 27)
    invoked from within
"gdb_real__can_spawn_for_attach_1"
...

The problem is that:
- can_spawn_for_attach_1 is a helper function for can_spawn_for_attach,
  designed to be called only from that function, and
- can_spawn_for_attach_1 is a gdb_caching_proc, and consequently
  test-case gdb.testsuite/gdb-caching-proc-consistency.exp calls
  can_spawn_for_attach_1 directly.

Fix this by copying the early-outs from can_spawn_for_attach to
can_spawn_for_attach_1.

Tested on x86_64-linux.

Reported-By: Simon Marchi <simark@simark.ca>
Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
This commit is contained in:
Tom de Vries
2024-05-20 16:42:08 +02:00
parent e390d876ab
commit 9839849c0c

View File

@@ -6191,6 +6191,13 @@ proc gdb_exit { } {
# return 0 only if we cannot attach because it's unsupported.
gdb_caching_proc can_spawn_for_attach_1 {} {
# For the benefit of gdb-caching-proc-consistency.exp, which
# calls can_spawn_for_attach_1 directly. Keep in sync with
# can_spawn_for_attach.
if { [is_remote target] || [target_info exists use_gdb_stub] } {
return 0
}
# Assume yes.
set res 1