Make gdb.base/auvx.exp work with --target_board=native-extended-gdbserver
authorPedro Alves <palves@redhat.com>
Thu, 12 Oct 2017 22:06:15 +0000 (23:06 +0100)
committerPedro Alves <palves@redhat.com>
Thu, 12 Oct 2017 22:06:15 +0000 (23:06 +0100)
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  <palves@redhat.com>

* gdb.base/auvx.exp (coredir): Update comment.
(top level) <core_works>: Use "set cwd" command instead of "cd"
command.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/auxv.exp

index 3d2df7d00b6d48704a11a32a4d66210eaed39199..de9a852c81f28364635e0e182e80c5766d87edb5 100644 (file)
@@ -1,3 +1,9 @@
+2017-10-12  Pedro Alves  <palves@redhat.com>
+
+       * gdb.base/auvx.exp (coredir): Update comment.
+       (top level) <core_works>: Use "set cwd" command instead of "cd"
+       command.
+
 2017-10-12  Pedro Alves  <palves@redhat.com>
            Simon Marchi  <simon.marchi@polymtl.ca>
 
index 833a1fd0b6205542d27fb2355c2ed3e5b92b367c..bc70b85eb828014792f2a0695fc750c2461e2344 100644 (file)
@@ -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
     }
 }