[PATCH][gdb/testsuite] Remove path names from error messages in gdb_file_cmd

Tom de Vries
2020-06-04T15:14:20Z

[-- Attachment #1: Type: text/plain, Size: 490 bytes --]

[ was: Re: [committed][gdb/testsuite] Fix use of fail in gdb_cmd_file ]
On 04-06-2020 16:18, Tom de Vries wrote:
> [ was: Re: [PATCH][gdb/testsuite] Fix PATH error in gdb_file_cmd ]
>
> On 04-06-2020 15:22, Pedro Alves wrote:
>> On 6/4/20 2:05 PM, Tom de Vries wrote:
>> (That leaves the open question of whether we want to include the
>> full paths in the ERROR, but that can be seen as an orthogonal issue
>> if you'd like.)
>
> Yes, I'd prefer that.
>

How about this?

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-testsuite-Remove-path-names-from-error-messages-in-gdb_file_cmd.patch --]
[-- Type: text/x-patch, Size: 2845 bytes --]

[gdb/testsuite] Remove path names from error messages in gdb_file_cmd

In gdb_file_cmd, perror is called with error message strings using $arg and
$GDB, both of which contain path names, which makes comparison of gdb.sum
files more difficult.

Fix this by using:
- [file tail $arg] instead of $arg
- GDB instead of $GDB.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-06-04 Tom de Vries <tdevries@suse.de>

* lib/gdb.exp (gdb_file_cmd): Avoid path names in error messages.

---
gdb/testsuite/lib/gdb.exp | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 3cdaefaa9c..9a0620a2bf 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1762,6 +1762,7 @@ proc gdb_file_cmd { arg } {

send_gdb "file $arg\n"
set new_symbol_table 0
+ set basename [file tail $arg]
gdb_expect 120 {
-re "Reading symbols from.*LZMA support was disabled.*$gdb_prompt $" {
verbose "\t\tLoaded $arg into $GDB; .gnu_debugdata found but no LZMA available"
@@ -1780,36 +1781,39 @@ proc gdb_file_cmd { arg } {
}
-re "Load new symbol table from \".*\".*y or n. $" {
if { $new_symbol_table > 0 } {
- perror "Couldn't load $arg, interactive prompt loop detected."
+ perror [join [list "Couldn't load $basename,"
+ "interactive prompt loop detected."]]
return -1
}
send_gdb "y\n" answer
incr new_symbol_table
- set arg "$arg -- with new symbol table"
+ set suffix "-- with new symbol table"
+ set arg "$arg $suffix"
+ set basename "$basename $suffix"
exp_continue
}
-re "No such file or directory.*$gdb_prompt $" {
- perror "($arg) No such file or directory"
+ perror "($basename) No such file or directory"
return -1
}
-re "A problem internal to GDB has been detected" {
- perror "Couldn't load $arg into $GDB (GDB internal error)."
+ perror "Couldn't load $basename into GDB (GDB internal error)."
gdb_internal_error_resync
return -1
}
-re "$gdb_prompt $" {
- perror "Couldn't load $arg into $GDB."
+ perror "Couldn't load $basename into GDB."
return -1
}
timeout {
- perror "Couldn't load $arg into $GDB (timeout)."
+ perror "Couldn't load $basename into GDB (timeout)."
return -1
}
eof {
# This is an attempt to detect a core dump, but seems not to
# work. Perhaps we need to match .* followed by eof, in which
# gdb_expect does not seem to have a way to do that.
- perror "Couldn't load $arg into $GDB (eof)."
+ perror "Couldn't load $basename into GDB (eof)."
return -1
}
}