| Index: gdb/testsuite/gdb.base/sepdebug.exp
|
| diff --git a/gdb/testsuite/gdb.base/sepdebug.exp b/gdb/testsuite/gdb.base/sepdebug.exp
|
| index e6973fb9a6f8a663821b113a61467dea79d0aa60..632a43eacf829ca152cd8b19e92fbbe4850b80c3 100644
|
| --- a/gdb/testsuite/gdb.base/sepdebug.exp
|
| +++ b/gdb/testsuite/gdb.base/sepdebug.exp
|
| @@ -1,5 +1,4 @@
|
| -# Copyright 1988, 1990-1992, 1994-2000, 2002-2004, 2007-2012 Free
|
| -# Software Foundation, Inc.
|
| +# Copyright 1988-2013 Free Software Foundation, Inc.
|
|
|
| # This program is free software; you can redistribute it and/or modify
|
| # it under the terms of the GNU General Public License as published by
|
| @@ -30,9 +29,7 @@
|
| # test running programs
|
| #
|
|
|
| -set testfile "sepdebug"
|
| -set srcfile ${testfile}.c
|
| -set binfile ${objdir}/${subdir}/${testfile}${EXEEXT}
|
| +standard_testfile .c
|
|
|
| if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
|
| untested sepdebug.exp
|
| @@ -55,14 +52,15 @@ if [gdb_gnu_strip_debug $binfile] {
|
| # PR gdb/9538. Verify that symlinked executable still finds the separate
|
| # debuginfo.
|
| #
|
| -set old_subdir ${subdir}
|
| -set subdir ${subdir}/pr9538
|
| +set old_subdir $subdir
|
| +set subdir [file join ${old_subdir} pr9538]
|
|
|
| # Cleanup any stale state.
|
| -remote_exec build "rm -rf ${subdir}"
|
| +set new_name [standard_output_file ${testfile}${EXEEXT}]
|
| +remote_exec build "rm -rf [file dirname $new_name]"
|
|
|
| -remote_exec build "mkdir ${subdir}"
|
| -remote_exec build "ln -s ${binfile} ${subdir}"
|
| +remote_exec build "mkdir [file dirname $new_name]"
|
| +remote_exec build "ln -s ${binfile} $new_name"
|
| clean_restart ${testfile}${EXEEXT}
|
| if { $gdb_file_cmd_debug_info != "debug" } then {
|
| fail "No debug information found."
|
| @@ -579,8 +577,8 @@ proc test_next_with_recursion {} {
|
| gdb_expect {
|
| -re "Break.* factorial .value=6. .*$gdb_prompt $" {}
|
| -re ".*$gdb_prompt $" {
|
| - fail "run to factorial(6)";
|
| - gdb_suppress_tests;
|
| + fail "run to factorial(6)"
|
| + gdb_suppress_tests
|
| }
|
| timeout { fail "run to factorial(6) (timeout)" ; gdb_suppress_tests }
|
| }
|
| @@ -641,7 +639,7 @@ proc test_next_with_recursion {} {
|
|
|
| if [target_info exists gdb,noresults] { gdb_suppress_tests }
|
| gdb_continue_to_end "recursive next test"
|
| - gdb_stop_suppressing_tests;
|
| + gdb_stop_suppressing_tests
|
| }
|
|
|
| test_next_with_recursion
|
| @@ -649,111 +647,113 @@ test_next_with_recursion
|
|
|
| #********
|
|
|
| -proc test_different_dir {type test_different_dir xfail} { with_test_prefix "$type" {
|
| - global srcdir subdir objdir binfile srcfile timeout gdb_prompt
|
| - global bp_location6 decimal hex
|
| -
|
| - gdb_exit
|
| - gdb_start
|
| - gdb_reinitialize_dir $srcdir/$subdir
|
| - gdb_test_no_output "set debug-file-directory ${test_different_dir}" \
|
| - "set separate debug location"
|
| - gdb_load ${binfile}
|
| -
|
| - #
|
| - # test break at function
|
| - #
|
| - if {$xfail} {
|
| - setup_xfail "*-*-*"
|
| - }
|
| - gdb_test "break main" \
|
| - "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| - "breakpoint function, optimized file"
|
| -
|
| - #
|
| - # test break at function
|
| - #
|
| - if {$xfail} {
|
| - setup_xfail "*-*-*"
|
| - }
|
| - gdb_test "break marker4" \
|
| - "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| - "breakpoint small function, optimized file"
|
| -
|
| - #
|
| - # run until the breakpoint at main is hit. For non-stubs-using targets.
|
| - #
|
| - gdb_run_cmd
|
| - if {$xfail} {
|
| - setup_xfail "*-*-*"
|
| - }
|
| - gdb_expect {
|
| - -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.* \{.*$gdb_prompt $" {
|
| - pass "run until function breakpoint, optimized file"
|
| +proc test_different_dir {type test_different_dir xfail} {
|
| + with_test_prefix "$type" {
|
| + global srcdir subdir binfile srcfile timeout gdb_prompt
|
| + global bp_location6 decimal hex
|
| +
|
| + gdb_exit
|
| + gdb_start
|
| + gdb_reinitialize_dir $srcdir/$subdir
|
| + gdb_test_no_output "set debug-file-directory ${test_different_dir}" \
|
| + "set separate debug location"
|
| + gdb_load ${binfile}
|
| +
|
| + #
|
| + # test break at function
|
| + #
|
| + if {$xfail} {
|
| + setup_xfail "*-*-*"
|
| }
|
| - -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$gdb_prompt $" {
|
| - pass "run until function breakpoint, optimized file (code motion)"
|
| + gdb_test "break main" \
|
| + "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| + "breakpoint function, optimized file"
|
| +
|
| + #
|
| + # test break at function
|
| + #
|
| + if {$xfail} {
|
| + setup_xfail "*-*-*"
|
| }
|
| - -re "$gdb_prompt $" {
|
| - fail "run until function breakpoint, optimized file"
|
| + gdb_test "break marker4" \
|
| + "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| + "breakpoint small function, optimized file"
|
| +
|
| + #
|
| + # run until the breakpoint at main is hit. For non-stubs-using targets.
|
| + #
|
| + gdb_run_cmd
|
| + if {$xfail} {
|
| + setup_xfail "*-*-*"
|
| }
|
| - timeout {
|
| - fail "run until function breakpoint, optimized file (timeout)"
|
| + gdb_expect {
|
| + -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.* \{.*$gdb_prompt $" {
|
| + pass "run until function breakpoint, optimized file"
|
| + }
|
| + -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$gdb_prompt $" {
|
| + pass "run until function breakpoint, optimized file (code motion)"
|
| + }
|
| + -re "$gdb_prompt $" {
|
| + fail "run until function breakpoint, optimized file"
|
| + }
|
| + timeout {
|
| + fail "run until function breakpoint, optimized file (timeout)"
|
| + }
|
| }
|
| - }
|
| -
|
| - #
|
| - # run until the breakpoint at a small function
|
| - #
|
| -
|
| - #
|
| - # Add a second pass pattern. The behavior differs here between stabs
|
| - # and dwarf for one-line functions. Stabs preserves two line symbols
|
| - # (one before the prologue and one after) with the same line number,
|
| - # but dwarf regards these as duplicates and discards one of them.
|
| - # Therefore the address after the prologue (where the breakpoint is)
|
| - # has no exactly matching line symbol, and GDB reports the breakpoint
|
| - # as if it were in the middle of a line rather than at the beginning.
|
| -
|
| - set bp_location13 [gdb_get_line_number "set breakpoint 13 here"]
|
| - set bp_location14 [gdb_get_line_number "set breakpoint 14 here"]
|
| - if {$xfail} {
|
| - setup_xfail "*-*-*"
|
| - }
|
|
|
| - gdb_test_multiple "continue" "run until breakpoint set at small function, optimized file" {
|
| - -re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*$gdb_prompt $" {
|
| - pass "run until breakpoint set at small function, optimized file"
|
| - }
|
| - -re "Breakpoint $decimal, $hex in marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*$gdb_prompt $" {
|
| - pass "run until breakpoint set at small function, optimized file"
|
| + #
|
| + # run until the breakpoint at a small function
|
| + #
|
| +
|
| + #
|
| + # Add a second pass pattern. The behavior differs here between stabs
|
| + # and dwarf for one-line functions. Stabs preserves two line symbols
|
| + # (one before the prologue and one after) with the same line number,
|
| + # but dwarf regards these as duplicates and discards one of them.
|
| + # Therefore the address after the prologue (where the breakpoint is)
|
| + # has no exactly matching line symbol, and GDB reports the breakpoint
|
| + # as if it were in the middle of a line rather than at the beginning.
|
| +
|
| + set bp_location13 [gdb_get_line_number "set breakpoint 13 here"]
|
| + set bp_location14 [gdb_get_line_number "set breakpoint 14 here"]
|
| + if {$xfail} {
|
| + setup_xfail "*-*-*"
|
| }
|
| - -re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location14\[\r\n\]+$bp_location14\[\t \]+void marker4.*$gdb_prompt $" {
|
| - # marker4() is defined at line 46 when compiled with -DPROTOTYPES
|
| - pass "run until breakpoint set at small function, optimized file (line bp_location14)"
|
| +
|
| + gdb_test_multiple "continue" "run until breakpoint set at small function, optimized file" {
|
| + -re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*$gdb_prompt $" {
|
| + pass "run until breakpoint set at small function, optimized file"
|
| + }
|
| + -re "Breakpoint $decimal, $hex in marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*$gdb_prompt $" {
|
| + pass "run until breakpoint set at small function, optimized file"
|
| + }
|
| + -re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location14\[\r\n\]+$bp_location14\[\t \]+void marker4.*$gdb_prompt $" {
|
| + # marker4() is defined at line 46 when compiled with -DPROTOTYPES
|
| + pass "run until breakpoint set at small function, optimized file (line bp_location14)"
|
| + }
|
| }
|
| - }
|
|
|
|
|
| - # Reset the default arguments for VxWorks
|
| - if [istarget "*-*-vxworks*"] {
|
| - set timeout 10
|
| - verbose "Timeout is now $timeout seconds" 2
|
| - gdb_test_no_output "set args main"
|
| - }
|
| + # Reset the default arguments for VxWorks
|
| + if [istarget "*-*-vxworks*"] {
|
| + set timeout 10
|
| + verbose "Timeout is now $timeout seconds" 2
|
| + gdb_test_no_output "set args main"
|
| + }
|
|
|
| -# proc test_different_dir
|
| -}}
|
| + # proc test_different_dir
|
| + }
|
| +}
|
|
|
|
|
| # now move the .debug file to a different location so that we can test
|
| # the "set debug-file-directory" command.
|
|
|
| -set different_dir "${objdir}/${subdir}/${testfile}.dir"
|
| -set debugfile "${different_dir}/${objdir}/${subdir}/${testfile}.debug"
|
| +set different_dir [standard_output_file ${testfile}.dir]
|
| +set debugfile "${different_dir}/[standard_output_file ${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"
|
| +remote_exec build "mv -f [standard_output_file ${testfile}.debug] $debugfile"
|
|
|
| test_different_dir debuglink $different_dir 0
|
|
|
| @@ -761,17 +761,17 @@ test_different_dir debuglink $different_dir 0
|
| # Test CRC mismatch is reported.
|
|
|
| if {[build_executable sepdebug.exp sepdebug2 sepdebug2.c debug] != -1
|
| - && ![gdb_gnu_strip_debug ${objdir}/${subdir}/sepdebug2]} {
|
| + && ![gdb_gnu_strip_debug [standard_output_file sepdebug2]]} {
|
|
|
| - remote_exec build "cp ${debugfile} ${objdir}/${subdir}/sepdebug2.debug"
|
| + remote_exec build "cp ${debugfile} [standard_output_file sepdebug2.debug]"
|
|
|
| gdb_exit
|
| gdb_start
|
| gdb_reinitialize_dir $srcdir/$subdir
|
|
|
| - set escapedobjdirsubdir [string_to_regexp ${objdir}/${subdir}]
|
| + set escapedobjdirsubdir [string_to_regexp [standard_output_file {}]]
|
|
|
| - 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"
|
| + gdb_test "file [standard_output_file 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"
|
| }
|
|
|
|
|
| @@ -796,17 +796,17 @@ if ![string compare $build_id_debug_filename ""] then {
|
| pass $test
|
| }
|
|
|
| - file mkdir [file dirname ${objdir}/${subdir}/${build_id_debug_filename}]
|
| - remote_exec build "mv $debugfile ${objdir}/${subdir}/${build_id_debug_filename}"
|
| + file mkdir [file dirname [standard_output_file ${build_id_debug_filename}]]
|
| + remote_exec build "mv $debugfile [standard_output_file ${build_id_debug_filename}]"
|
|
|
| - test_different_dir build-id "${objdir}/${subdir}" $xfail
|
| + test_different_dir build-id [standard_output_file {}] $xfail
|
|
|
| # Test also multiple directories can be specified. Without the build-id
|
| # reference GDB would find the separate debug info just at the same
|
| # location as the executable file.
|
|
|
| - test_different_dir multiple-dirs "/doesnotexist:${objdir}/${subdir}" $xfail
|
| + test_different_dir multiple-dirs "/doesnotexist:[standard_output_file {}]" $xfail
|
|
|
| # Spare debug files may confuse testsuite runs in the future.
|
| - remote_exec build "rm -f ${objdir}/${subdir}/${build_id_debug_filename}"
|
| + remote_exec build "rm -f [standard_output_file ${build_id_debug_filename}]"
|
| }
|
|
|