From 9192b7decc7256a41502bf68df36f429cceffc89 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 12 Oct 2017 23:06:15 +0100 Subject: [PATCH] Make gdb.base/auvx.exp work with --target_board=native-extended-gdbserver Currently we get: Running .../src/gdb/testsuite/gdb.base/auxv.exp ... WARNING: can't generate a core file - core tests suppressed - check ulimit -c After this commit we get all the same PASSes as when native testing. The problem is that the testcase wants to create a core dump in a temporary directory and it is using the "cd" command to start the inferior with that directory as current directory, but that command only affects the inferior's cwd when native debugging. Fix it by using using the new "set cwd" command instead, which works with gdbserver as well. This still won't work with stub-like targets, because with those when we connect the inferior is already running. It'd be possible to make it work by making the inferior itself change dirs, but we'll need to make the native-gdbserver board no longer set is_remote first. gdb/testsuite/ChangeLog: 2017-10-12 Pedro Alves * gdb.base/auvx.exp (coredir): Update comment. (top level) : Use "set cwd" command instead of "cd" command. --- gdb/testsuite/ChangeLog | 6 ++++++ gdb/testsuite/gdb.base/auxv.exp | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3d2df7d00b6..de9a852c81f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2017-10-12 Pedro Alves + + * gdb.base/auvx.exp (coredir): Update comment. + (top level) : Use "set cwd" command instead of "cd" + command. + 2017-10-12 Pedro Alves Simon Marchi diff --git a/gdb/testsuite/gdb.base/auxv.exp b/gdb/testsuite/gdb.base/auxv.exp index 833a1fd0b62..bc70b85eb82 100644 --- a/gdb/testsuite/gdb.base/auxv.exp +++ b/gdb/testsuite/gdb.base/auxv.exp @@ -38,7 +38,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \ } # Use a fresh directory to confine the native core dumps. -# Make it the working directory for gdb and its child. +# Make it the working directory for the inferior. set coredir [standard_output_file coredir.[getpid]] file mkdir $coredir set core_works [expr [isnative] && ! [is_remote target]] @@ -50,8 +50,8 @@ gdb_test_no_output "set print sevenbit-strings" gdb_test_no_output "set width 0" if {$core_works} { - if {[gdb_test "cd $coredir" ".*Working directory .*" \ - "cd to temporary directory for core dumps"]} { + if {[gdb_test_no_output "set cwd $coredir" \ + "set cwd to temporary directory for core dumps"]} { set core_works 0 } } -- 2.30.2