Skip to content
Snippets Groups Projects
Commit 81a7a72f authored by Tom de Vries's avatar Tom de Vries
Browse files

[gdb/testsuite] Fix gdb.arch/amd64*.exp with local-remote-host-native.exp

There's a number of gdb.arch/amd64*.exp test-cases that fail with host+target
board local-remote-host-native.exp because of using a .S file, generated from
a .c file.

If a test-case compiles the .S file when executing on remote host,
the .S file is already copied from build to host, such that it's available for
the compiler.

But that's not the case for the .c file, which is needed by gdb to show a
source line:
...
(gdb) continue^M
Continuing.^M
^M
Breakpoint 2, fn2 (y=y@entry=25, x=x@entry=6) at amd64-entry-value-inline.c:32^M
32      in gdb.arch/amd64-entry-value-inline.c^M
(gdb) FAIL: gdb.arch/amd64-entry-value-inline.exp: continue to breakpoint: \
  break-here
...

Fix this by using "gdb_remote_download host <.c file>".

Tested on x86_64-linux, with host+target board local-remote-host-native.
parent 2d5783fa
No related branches found
No related tags found
No related merge requests found
...@@ -14,16 +14,21 @@ ...@@ -14,16 +14,21 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
set opts {} set opts {}
standard_testfile .S standard_testfile .S .c
if [info exists COMPILE] { if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-inline.exp COMPILE=1" # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-inline.exp COMPILE=1"
standard_testfile standard_testfile .c .c
lappend opts debug optimize=-O2 lappend opts debug optimize=-O2
} else { } else {
require is_x86_64_m64_target require is_x86_64_m64_target
} }
# Make .c available on the host.
if [is_remote host] {
gdb_remote_download host $srcdir/$subdir/$srcfile2
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } { if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1 return -1
} }
...@@ -32,8 +37,7 @@ if ![runto_main] { ...@@ -32,8 +37,7 @@ if ![runto_main] {
return -1 return -1
} }
set srcfile $testfile.c gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
gdb_breakpoint [gdb_get_line_number "break-here"]
gdb_continue_to_breakpoint "break-here" ".* break-here .*" gdb_continue_to_breakpoint "break-here" ".* break-here .*"
gdb_test "p y" " = 25" gdb_test "p y" " = 25"
...@@ -18,12 +18,17 @@ set opts {} ...@@ -18,12 +18,17 @@ set opts {}
if [info exists COMPILE] { if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param-dwarf5.exp COMPILE=1" # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param-dwarf5.exp COMPILE=1"
set srcfile ${srcfile2} standard_testfile .c .c
lappend opts optimize=-O2 additional_flags=-gdwarf-5 lappend opts optimize=-O2 additional_flags=-gdwarf-5
} else { } else {
require is_x86_64_m64_target require is_x86_64_m64_target
} }
# Make .c available on the host.
if [is_remote host] {
gdb_remote_download host $srcdir/$subdir/$srcfile2
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } { if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1 return -1
} }
...@@ -32,8 +37,7 @@ if ![runto_main] { ...@@ -32,8 +37,7 @@ if ![runto_main] {
return -1 return -1
} }
set srcfile $srcfile2 gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
gdb_breakpoint [gdb_get_line_number "break-here"]
with_test_prefix "call 1" { with_test_prefix "call 1" {
gdb_continue_to_breakpoint "break-here" ".* break-here .*" gdb_continue_to_breakpoint "break-here" ".* break-here .*"
......
...@@ -18,12 +18,17 @@ set opts {} ...@@ -18,12 +18,17 @@ set opts {}
if [info exists COMPILE] { if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param.exp COMPILE=1" # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param.exp COMPILE=1"
set srcfile ${srcfile2} standard_testfile .c .c
lappend opts debug optimize=-O2 lappend opts debug optimize=-O2
} else { } else {
require is_x86_64_m64_target require is_x86_64_m64_target
} }
# Make .c available on the host.
if [is_remote host] {
remote_download host $srcdir/$subdir/$srcfile2
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } { if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1 return -1
} }
...@@ -32,8 +37,7 @@ if ![runto_main] { ...@@ -32,8 +37,7 @@ if ![runto_main] {
return -1 return -1
} }
set srcfile $srcfile2 gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
gdb_breakpoint [gdb_get_line_number "break-here"]
with_test_prefix "call 1" { with_test_prefix "call 1" {
gdb_continue_to_breakpoint "break-here" ".* break-here .*" gdb_continue_to_breakpoint "break-here" ".* break-here .*"
......
...@@ -17,6 +17,11 @@ standard_testfile .S .cc ...@@ -17,6 +17,11 @@ standard_testfile .S .cc
require is_x86_64_m64_target require is_x86_64_m64_target
# Make .cc available on the host.
if [is_remote host] {
gdb_remote_download host $srcdir/$subdir/$srcfile2
}
if { [prepare_for_testing_full "failed to prepare" \ if { [prepare_for_testing_full "failed to prepare" \
[list $testfile "c++" $srcfile {}]] } { [list $testfile "c++" $srcfile {}]] } {
return -1 return -1
...@@ -26,8 +31,7 @@ if ![runto_main] { ...@@ -26,8 +31,7 @@ if ![runto_main] {
return -1 return -1
} }
set srcfile $srcfile2 gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
gdb_breakpoint [gdb_get_line_number "break-here"]
gdb_continue_to_breakpoint "break-here" ".* break-here .*" gdb_continue_to_breakpoint "break-here" ".* break-here .*"
gdb_test "frame" {bar \(ref=@0x[0-9a-f]+: 10, ref@entry=@0x[0-9a-f]+: <optimized out>\) at .*} gdb_test "frame" {bar \(ref=@0x[0-9a-f]+: 10, ref@entry=@0x[0-9a-f]+: <optimized out>\) at .*}
...@@ -14,16 +14,21 @@ ...@@ -14,16 +14,21 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
set opts {} set opts {}
standard_testfile .S standard_testfile .S .c
if [info exists COMPILE] { if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.arch/amd64-tailcall-ret.exp COMPILE=1" # make check RUNTESTFLAGS="gdb.arch/amd64-tailcall-ret.exp COMPILE=1"
standard_testfile standard_testfile .c .c
lappend opts debug optimize=-O2 lappend opts debug optimize=-O2
} else { } else {
require is_x86_64_m64_target require is_x86_64_m64_target
} }
# Make .c available on the host.
if [is_remote host] {
gdb_remote_download host $srcdir/$subdir/$srcfile2
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } { if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1 return -1
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment