Patchwork [6/9] testsuite: Create .cmd files for gdb and gdbserver

login
register
mail settings
Submitter Alan Hayward
Date May 14, 2019, 3:12 p.m.
Message ID <20190514151238.8765-7-alan.hayward@arm.com>
Download mbox | patch
Permalink /patch/32683/
State New
Headers show

Comments

Alan Hayward - May 14, 2019, 3:12 p.m.
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 appened to the files so that they can be quickly matched
to the corresponding gdb.in file.

gdb/testsuite/ChangeLog:

2019-05-14  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 proedure.
---
 gdb/testsuite/lib/gdb.exp               | 10 ++++++++++
 gdb/testsuite/lib/gdbserver-support.exp | 11 +++++++++++
 2 files changed, 21 insertions(+)

-- 
2.20.1 (Apple Git-117)
Tom Tromey - May 16, 2019, 7:28 p.m.
>>>>> "Alan" == Alan Hayward <Alan.Hayward@arm.com> writes:

Alan> When spawning gdb or gdbserver create a .cmd file in the test output
Alan> directory containing the full command line, ensuring the current gdb
Alan> instance is appened to the files so that they can be quickly matched

Typo in the commit message, should be "appended", but otherwise looks
good.  Thanks.

Tom

Patch

diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp

index 3815f86ffc8..cbf8d29ec12 100644

--- a/gdb/testsuite/lib/gdb.exp

+++ b/gdb/testsuite/lib/gdb.exp

@@ -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
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp

index 164a1d1d3cd..54aa55771c1 100644

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

+++ b/gdb/testsuite/lib/gdbserver-support.exp

@@ -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"

+}