aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-05-02 09:08:59 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2010-05-02 09:08:59 +0000
commit8e1d0c49c139082ac4992a51c87860a805043b5f (patch)
treedff0ff0de87124a262b674ac45fb3cf9d4824844
parentf9e39928dc25d4f8ec5cad87c6cea4cd5ef08f58 (diff)
downloadgdb-8e1d0c49c139082ac4992a51c87860a805043b5f.zip
gdb-8e1d0c49c139082ac4992a51c87860a805043b5f.tar.gz
gdb-8e1d0c49c139082ac4992a51c87860a805043b5f.tar.bz2
gdb/testsuite/
* gdb.base/break-interp.exp: Remove $exec.debug safety removal. * gdb.base/sepdebug.exp: Remove .debug subdirectory handling. New variable different_dir. Move debugfile into a full directory pathname under DIFFERENT_DIR. * lib/gdb.exp (separate_debug_filename): Remove. (gdb_gnu_strip_debug): No longer call separate_debug_filename. Remove variable debug_dir and mkdir of it. Update function comments.
-rw-r--r--gdb/testsuite/ChangeLog10
-rw-r--r--gdb/testsuite/gdb.base/break-interp.exp4
-rw-r--r--gdb/testsuite/gdb.base/sepdebug.exp17
-rw-r--r--gdb/testsuite/lib/gdb.exp36
4 files changed, 27 insertions, 40 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 410d871..1918726 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2010-05-02 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.base/break-interp.exp: Remove $exec.debug safety removal.
+ * gdb.base/sepdebug.exp: Remove .debug subdirectory handling. New
+ variable different_dir. Move debugfile into a full directory pathname
+ under DIFFERENT_DIR.
+ * lib/gdb.exp (separate_debug_filename): Remove.
+ (gdb_gnu_strip_debug): No longer call separate_debug_filename. Remove
+ variable debug_dir and mkdir of it. Update function comments.
+
2010-04-29 Pedro Alves <pedro@codesourcery.com>
PR gdb/11557
diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp
index 86844ee..1fade4e 100644
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -636,10 +636,6 @@ foreach ldprelink {NO YES} {
}
if {$binsepdebug == "SEP"} {
gdb_gnu_strip_debug $exec
- # Just a sanity check. As gdb_gnu_strip_debug uses the
- # "[file dirname $exec]/.debug/[file tail $exec].debug"
- # variant delete the higher-priority exec.debug file.
- file delete "$exec.debug"
}
# Supply a self-sufficent directory $dir with the required
diff --git a/gdb/testsuite/gdb.base/sepdebug.exp b/gdb/testsuite/gdb.base/sepdebug.exp
index 5267ffb..6802410 100644
--- a/gdb/testsuite/gdb.base/sepdebug.exp
+++ b/gdb/testsuite/gdb.base/sepdebug.exp
@@ -50,7 +50,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
# ${binfile}, which is just like the executable ($binfile) but without
# the debuginfo. Instead $binfile has a .gnudebuglink section which contains
# the name of a debuginfo only file. This file will be stored in the
-# gdb.base/.debug subdirectory.
+# gdb.base/ subdirectory.
if [gdb_gnu_strip_debug $binfile] {
# check that you have a recent version of strip and objcopy installed
@@ -946,11 +946,14 @@ proc test_different_dir {type test_different_dir xfail} {
# now move the .debug file to a different location so that we can test
# the "set debug-file-directory" command.
-
-remote_exec build "mv ${objdir}/${subdir}/.debug/${testfile}.debug ${objdir}/${subdir}"
-set debugfile "${objdir}/${subdir}/${testfile}.debug"
-test_different_dir debuglink "${objdir}/${subdir}" 0
+set different_dir "${objdir}/${subdir}/${testfile}.dir"
+set debugfile "${different_dir}/${objdir}/${subdir}/${testfile}.debug"
+remote_exec build "rm -rf $different_dir"
+remote_exec build "mkdir -p [file dirname $debugfile]"
+remote_exec build "mv -f ${objdir}/${subdir}/${testfile}.debug $debugfile"
+
+test_different_dir debuglink $different_dir 0
# Test CRC mismatch is reported.
@@ -958,7 +961,7 @@ test_different_dir debuglink "${objdir}/${subdir}" 0
if {[build_executable sepdebug.exp sepdebug2 sepdebug2.c debug] != -1
&& ![gdb_gnu_strip_debug ${objdir}/${subdir}/sepdebug2]} {
- remote_exec build "cp ${debugfile} ${objdir}/${subdir}/.debug/sepdebug2.debug"
+ remote_exec build "cp ${debugfile} ${objdir}/${subdir}/sepdebug2.debug"
gdb_exit
gdb_start
@@ -966,7 +969,7 @@ if {[build_executable sepdebug.exp sepdebug2 sepdebug2.c debug] != -1
set escapedobjdirsubdir [string_to_regexp ${objdir}/${subdir}]
- gdb_test "file ${objdir}/${subdir}/sepdebug2" "warning: the debug information found in \"${escapedobjdirsubdir}/\\.debug/sepdebug2\\.debug\" does not match \"${escapedobjdirsubdir}/sepdebug2\" \\(CRC mismatch\\)\\..*\\(no debugging symbols found\\).*" "CRC mismatch is reported"
+ gdb_test "file ${objdir}/${subdir}/sepdebug2" "warning: the debug information found in \"${escapedobjdirsubdir}/sepdebug2\\.debug\" does not match \"${escapedobjdirsubdir}/sepdebug2\" \\(CRC mismatch\\)\\..*\\(no debugging symbols found\\).*" "CRC mismatch is reported"
}
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 3a1fad3..8be2a72 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -2833,8 +2833,8 @@ proc gdb_skip_xml_test { } {
# Note: the procedure gdb_gnu_strip_debug will produce an executable called
# ${binfile}.dbglnk, which is just like the executable ($binfile) but without
# the debuginfo. Instead $binfile has a .gnu_debuglink section which contains
-# the name of a debuginfo only file. This file will be stored in the
-# gdb.base/.debug subdirectory.
+# the name of a debuginfo only file. This file will be stored in the same
+# subdirectory.
# Functions for separate debug info testing
@@ -2843,27 +2843,9 @@ proc gdb_skip_xml_test { } {
# at the end of the process we have:
# foo.stripped --> foo w/o debug info
-# .debug/foo.debug --> foo's debug info
+# foo.debug --> foo's debug info
# foo --> like foo, but with a new .gnu_debuglink section pointing to foo.debug.
-# Return the name of the file in which we should stor EXEC's separated
-# debug info. EXEC contains the full path.
-proc separate_debug_filename { exec } {
-
- # In a .debug subdirectory off the same directory where the testcase
- # executable is going to be. Something like:
- # <your-path>/gdb/testsuite/gdb.base/.debug/blah.debug.
- # This is the default location where gdb expects to findi
- # the debug info file.
-
- set exec_dir [file dirname $exec]
- set exec_file [file tail $exec]
- set debug_dir [file join $exec_dir ".debug"]
- set debug_file [file join $debug_dir "${exec_file}.debug"]
-
- return $debug_file
-}
-
# Return the build-id hex string (usually 160 bits as 40 hex characters)
# converted to the form: .build-id/ab/cdef1234...89.debug
# Return "" if no build-id found.
@@ -2902,17 +2884,13 @@ proc build_id_debug_filename_get { exec } {
proc gdb_gnu_strip_debug { dest args } {
- set debug_file [separate_debug_filename $dest]
+ # Use the first separate debug info file location searched by GDB so the
+ # run cannot be broken by some stale file searched with higher precedence.
+ set debug_file "${dest}.debug"
+
set strip_to_file_program [transform strip]
set objcopy_program [transform objcopy]
- # Make sure the directory that will hold the separated debug
- # info actually exists.
- set debug_dir [file dirname $debug_file]
- if {! [file isdirectory $debug_dir]} {
- file mkdir $debug_dir
- }
-
set debug_link [file tail $debug_file]
set stripped_file "${dest}.stripped"