testsuite: Create .cmd files for gdb and gdbserver

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.
This commit is contained in:
Alan Hayward 2019-05-17 16:38:02 +01:00
parent f9e2e39d23
commit 408e9b8b9e
3 changed files with 29 additions and 0 deletions

View 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.

View 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

View 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"
}