]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Fix gdb.threads/threadcrash.exp for remote host
authorTom de Vries <tdevries@suse.de>
Wed, 24 Apr 2024 13:36:02 +0000 (15:36 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 24 Apr 2024 13:36:02 +0000 (15:36 +0200)
With test-case gdb.threads/threadcrash.exp using host board local-remote-host
and target board remote-gdbserver-on-localhost I run into:
...
(gdb) PASS: gdb.threads/threadcrash.exp: test_gcore: continue to crash
gcore $outputs/gdb.threads/threadcrash/threadcrash.gcore^M
Failed to open '$outputs/gdb.threads/threadcrash/threadcrash.gcore' for output.^M
(gdb) FAIL: gdb.threads/threadcrash.exp: test_gcore: saving gcore
UNSUPPORTED: gdb.threads/threadcrash.exp: test_gcore: couldn't generate gcore file
...

The problem is that the gcore command tries to save a file on a remote host,
but the filename is a location on build.

Fix this by using host_standard_output_file.

Tested on x86_64-linux.

gdb/testsuite/gdb.threads/threadcrash.exp

index ffbfd83942c17636bb4420949bfe09758e3ffc4c..6da70736983254b84080a3055d85f33e82977d24 100644 (file)
@@ -251,17 +251,15 @@ proc_with_prefix test_gcore {} {
     }
     gdb_test "continue" ".*Segmentation fault.*" "continue to crash"
 
-    set gcore_name "${::binfile}.gcore"
-    set gcore_supported [gdb_gcore_cmd "$gcore_name" "saving gcore"]
+    set gcore_host [host_standard_output_file $::testfile.gcore]
+    set gcore_supported [gdb_gcore_cmd "$gcore_host" "saving gcore"]
 
     if {!$gcore_supported} {
        unsupported "couldn't generate gcore file"
        return
     }
 
-    set corefile [gdb_remote_download host $gcore_name]
-
-    gdb_test "core-file $corefile" \
+    gdb_test "core-file $gcore_host" \
             "" \
             "loading_corefile" \
             "A program is being debugged already\\\.  Kill it\\\? \\\(y or n\\\) " \