diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 36 |
2 files changed, 43 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5f2100b..ea98977 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-06 Alan Hayward <alan.hayward@arm.com> + + * lib/gdb.exp (builtin_cd): rename of cd. + (cd): Override builtin. + 2019-03-06 Richard Bunt <richard.bunt@arm.com> * gdb.fortran/function-calls.exp: New file. @@ -12,8 +17,8 @@ 2019-02-28 Alan Hayward <alan.hayward@arm.com> - * lib/gdbserver-support.exp (gdbserver_start): Check for listen - failure. + * lib/gdbserver-support.exp (gdbserver_start): Check for listen + failure. 2019-02-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 8a83313..f13f909 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -6272,5 +6272,41 @@ proc gdb_define_cmd {command command_list} { } } +# Override the 'cd' builtin with a version that ensures that the +# log file keeps pointing at the same file. We need this because +# unfortunately the path to the log file is recorded using an +# relative path name, and, we sometimes need to close/reopen the log +# after changing the current directory. See get_compiler_info. + +rename cd builtin_cd + +proc cd { dir } { + + # Get the existing log file flags. + set log_file_info [log_file -info] + + # Split the flags into args and file name. + set log_file_flags "" + set log_file_file "" + foreach arg [ split "$log_file_info" " "] { + if [string match "-*" $arg] { + lappend log_file_flags $arg + } else { + lappend log_file_file $arg + } + } + + # If there was an existing file, ensure it is an absolute path, and then + # reset logging. + if { $log_file_file != "" } { + set log_file_file [file normalize $log_file_file] + log_file + log_file $log_file_flags "$log_file_file" + } + + # Call the builtin version of cd. + builtin_cd $dir +} + # Always load compatibility stuff. load_lib future.exp |