From 8e1d0c49c139082ac4992a51c87860a805043b5f Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sun, 2 May 2010 09:08:59 +0000 Subject: [PATCH] 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. --- gdb/testsuite/ChangeLog | 10 +++++++ gdb/testsuite/gdb.base/break-interp.exp | 4 --- gdb/testsuite/gdb.base/sepdebug.exp | 17 +++++++----- gdb/testsuite/lib/gdb.exp | 36 +++++-------------------- 4 files changed, 27 insertions(+), 40 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 410d871d747..1918726517f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2010-05-02 Jan Kratochvil + + * 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 PR gdb/11557 diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp index 86844ee2c42..1fade4e6f53 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 5267ffbea0e..6802410ecf0 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 3a1fad3cb9b..8be2a7240a9 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: - # /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" -- 2.30.2