testsuite: Create .cmd files for gdb and gdbserver
authorAlan Hayward <alan.hayward@arm.com>
Fri, 17 May 2019 15:38:02 +0000 (16:38 +0100)
committerAlan Hayward <alan.hayward@arm.com>
Fri, 17 May 2019 15:38:02 +0000 (16:38 +0100)
When spawning gdb or gdbserver create a .cmd file in the test output
directory containing the full command line, ensuring the current gdb
instance is appended to the files so that they can be quickly matched
to the corresponding gdb.in file.

gdb/testsuite/ChangeLog:

* lib/gdb.exp (default_gdb_spawn): Call gdb_write_cmd_file.
(gdb_write_cmd_file): New procedure.
* lib/gdbserver-support.exp (gdbserver_start): Call
gdbserver_write_cmd_file.
(gdbserver_write_cmd_file): New proedure.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp
gdb/testsuite/lib/gdbserver-support.exp

index b3cc028f82c5332b59850db50e446f086ac919e0..057c71b8c6495feddd4cf4207b5a64ddfd4b1540 100644 (file)
@@ -1,3 +1,11 @@
+2019-05-17  Alan Hayward  <alan.hayward@arm.com>
+
+       * lib/gdb.exp (default_gdb_spawn): Call gdb_write_cmd_file.
+       (gdb_write_cmd_file): New procedure.
+       * lib/gdbserver-support.exp (gdbserver_start): Call
+       gdbserver_write_cmd_file.
+       (gdbserver_write_cmd_file): New procedure.
+
 2019-05-17  Alan Hayward  <alan.hayward@arm.com>
 
        * lib/gdb.exp (gdb_unload): Mark Y as an answer.
index d00f1cefd3366fe057e20d3468e880f27f7a6af5..be90ba972f1be011cf5a433c4aa5576b730fcac0 100644 (file)
@@ -1664,6 +1664,7 @@ proc default_gdb_spawn { } {
     set use_gdb_stub [target_info exists use_gdb_stub]
 
     verbose "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS"
+    gdb_write_cmd_file "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS"
 
     if [info exists gdb_spawn_id] {
        return 0
@@ -6540,5 +6541,14 @@ proc gdb_stdin_log_write { message {type standard} } {
     puts -nonewline $in_file "$message"
 }
 
+# Write the command line used to invocate gdb to the cmd file.
+
+proc gdb_write_cmd_file { cmdline } {
+    set logfile [standard_output_file_with_gdb_instance gdb.cmd]
+    set cmd_file [open $logfile w]
+    puts $cmd_file $cmdline
+    catch "close $cmd_file"
+}
+
 # Always load compatibility stuff.
 load_lib future.exp
index 164a1d1d3cd80c2ca213e3a545925908e77eedf2..54aa55771c1028b885e9afbb7478e87cda58f8f7 100644 (file)
@@ -319,6 +319,8 @@ proc gdbserver_start { options arguments } {
            append gdbserver_command " $arguments"
        }
 
+       gdbserver_write_cmd_file $gdbserver_command
+
        global server_spawn_id
        set server_spawn_id [remote_spawn target $gdbserver_command]
 
@@ -597,3 +599,12 @@ proc gdbserver_debug_enabled { } {
     return [expr { $gdbserverdebug == "debug" || $gdbserverdebug == "remote"
                   || $gdbserverdebug == "all" }]
 }
+
+# Write the command line used to invocate gdbserver to the cmd file.
+
+proc gdbserver_write_cmd_file { cmdline } {
+    set logfile [standard_output_file_with_gdb_instance gdbserver.cmd]
+    set cmd_file [open $logfile w]
+    puts $cmd_file $cmdline
+    catch "close $cmd_file"
+}