aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog9
-rw-r--r--gdb/testsuite/lib/gdb.exp36
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