aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorJanis Johnson <janis@sourceware.org>2011-05-05 16:29:58 +0000
committerJanis Johnson <janis@sourceware.org>2011-05-05 16:29:58 +0000
commit56744f0ad5014d8f09764e77f30c50d125c3dc5a (patch)
treeb5f8a510adda134c2e0d9635be64eef5b4458559 /gdb/testsuite/lib
parent4c67c7981493811f6766ffb9b8a33cf9a8bb0956 (diff)
downloadgdb-56744f0ad5014d8f09764e77f30c50d125c3dc5a.zip
gdb-56744f0ad5014d8f09764e77f30c50d125c3dc5a.tar.gz
gdb-56744f0ad5014d8f09764e77f30c50d125c3dc5a.tar.bz2
* lib/gdb.exp (exec_target_file, exec_symbol_file,
gdb_rename_execfile, gdb_touch_execfile): New. * gdb.base/reread.exp: Use new procs to handle multiple exec files.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r--gdb/testsuite/lib/gdb.exp48
1 files changed, 48 insertions, 0 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 5979888..c50a732 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -2653,6 +2653,54 @@ proc shlib_symbol_file { libname } {
return $libname
}
+# Return the filename to download to the target and load for this
+# executable. Normally just BINFILE unless it is renamed to something
+# else for this target.
+
+proc exec_target_file { binfile } {
+ return $binfile
+}
+
+# Return the filename GDB will load symbols from when debugging this
+# executable. Normally just BINFILE unless executables for this target
+# have separate files for symbols.
+
+proc exec_symbol_file { binfile } {
+ return $binfile
+}
+
+# Rename the executable file. Normally this is just BINFILE1 being renamed
+# to BINFILE2, but some targets require multiple binary files.
+proc gdb_rename_execfile { binfile1 binfile2 } {
+ catch { file rename -force \
+ [exec_target_file ${binfile1}] \
+ [exec_target_file ${binfile2}] }
+ if { [exec_target_file ${binfile1}] != [exec_symbol_file ${binfile1}] } {
+ catch { file rename -force \
+ [exec_symbol_file ${binfile1}] \
+ [exec_symbol_file ${binfile2}] }
+ }
+}
+
+# "Touch" the executable file to update the date. Normally this is just
+# BINFILE, but some targets require multiple files.
+proc gdb_touch_execfile { binfile } {
+ catch { file copy -force \
+ [exec_target_file ${binfile}] \
+ [exec_target_file ${binfile}.tmp] }
+ catch { file rename -force \
+ [exec_target_file ${binfile}.tmp] \
+ [exec_target_file ${binfile}] }
+ if { [exec_target_file ${binfile}] != [exec_symbol_file ${binfile}] } {
+ catch { file copy -force \
+ [exec_symbol_file ${binfile}] \
+ [exec_symbol_file ${binfile}.tmp] }
+ catch { file rename -force \
+ [exec_symbol_file ${binfile}.tmp] \
+ [exec_symbol_file ${binfile}] }
+ }
+}
+
# gdb_download
#
# Copy a file to the remote target and return its target filename.