gdb/testsuite/
* lib/gdb.exp (skip_stl_tests): New. (gdb_compile): Symbian needs -ldl. (shlib_target_file): New. (shlib_symbol_file): New. (gdb_load_shlibs): Use shlib_target_file. * lib/mi-support.exp (mi_load_shlibs): Use shlib_target_file. * gdb.cp/exception.exp: Use skip_stl_tests. * gdb.cp/bs15503.exp: Use skip_stl_tests. Use untested. * gdb.cp/try_catch.exp: Use skip_stl_tests. * gdb.cp/mb-templates.exp: Ditto. * gdb.base/commands.exp: Relax regexes. * gdb.base/watchpoint-solib.exp: Don't skip on symbian. Use shlib_target_file and shlib_symbol_file. * gdb.base/maint.exp: Allow lowercase t. Allow .rodata in sections. * gdb.base/ending-run.exp: Accept E32Main for symbian. * gdb.base/solib-disc.exp: Use shlib_target_file and shlib_symbol_file. * gdb.base/unload.exp: Don't skip on symbian. Use shlib_target_file and shlib_symbol_file. * gdb.base/list.exp: Check use_gdb_stub instead of is_remote.
This commit is contained in:
parent
c942923237
commit
759f0f0b7b
@ -1,3 +1,28 @@
|
||||
2010-03-12 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
gdb/testsuite/
|
||||
* lib/gdb.exp (skip_stl_tests): New.
|
||||
(gdb_compile): Symbian needs -ldl.
|
||||
(shlib_target_file): New.
|
||||
(shlib_symbol_file): New.
|
||||
(gdb_load_shlibs): Use shlib_target_file.
|
||||
* lib/mi-support.exp (mi_load_shlibs): Use shlib_target_file.
|
||||
* gdb.cp/exception.exp: Use skip_stl_tests.
|
||||
* gdb.cp/bs15503.exp: Use skip_stl_tests. Use untested.
|
||||
* gdb.cp/try_catch.exp: Use skip_stl_tests.
|
||||
* gdb.cp/mb-templates.exp: Ditto.
|
||||
* gdb.base/commands.exp: Relax regexes.
|
||||
* gdb.base/watchpoint-solib.exp: Don't skip on symbian. Use
|
||||
shlib_target_file and shlib_symbol_file.
|
||||
* gdb.base/maint.exp: Allow lowercase t. Allow .rodata in
|
||||
sections.
|
||||
* gdb.base/ending-run.exp: Accept E32Main for symbian.
|
||||
* gdb.base/solib-disc.exp: Use
|
||||
shlib_target_file and shlib_symbol_file.
|
||||
* gdb.base/unload.exp: Don't skip on symbian. Use
|
||||
shlib_target_file and shlib_symbol_file.
|
||||
* gdb.base/list.exp: Check use_gdb_stub instead of is_remote.
|
||||
|
||||
2010-03-12 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* gdb.trace/backtrace.exp: Adjust for x86 and x86_64.
|
||||
|
@ -488,7 +488,7 @@ proc bp_deleted_in_command_test {} {
|
||||
|
||||
gdb_run_cmd
|
||||
gdb_expect {
|
||||
-re ".*factorial command-list executed.*1.*$gdb_prompt $" {
|
||||
-re ".*factorial command-list executed.*$gdb_prompt $" {
|
||||
pass "run factorial until breakpoint"
|
||||
}
|
||||
-re ".*$gdb_prompt $" {
|
||||
@ -550,7 +550,7 @@ proc temporary_breakpoint_commands {} {
|
||||
|
||||
gdb_run_cmd
|
||||
gdb_expect {
|
||||
-re ".*factorial tbreak commands executed.*1.*$gdb_prompt $" {
|
||||
-re ".*factorial tbreak commands executed.*$gdb_prompt $" {
|
||||
pass "run factorial until temporary breakpoint"
|
||||
}
|
||||
timeout { fail "(timeout) run factorial until temporary breakpoint" }
|
||||
|
@ -188,6 +188,10 @@ gdb_expect {
|
||||
# another `next' is necessary.
|
||||
gdb_test "next" ".*in start_l ().*" "step out of main"
|
||||
}
|
||||
-re "E32Main (.*).*$gdb_prompt $" {
|
||||
# On SymbianOS there's a different function which calls main.
|
||||
pass "step out of main"
|
||||
}
|
||||
-re ".*in.*currently asm.*$gdb_prompt $" {
|
||||
pass "step out of main"
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ proc test_listsize {} {
|
||||
# list the lines there instead of main, so we skip this test for remote targets.
|
||||
# The second case is for optimized code, it is still correct.
|
||||
|
||||
if [is_remote target] {
|
||||
if [target_info exists use_gdb_stub] {
|
||||
runto_main;
|
||||
unsupported "list default lines around main";
|
||||
} else {
|
||||
|
@ -305,7 +305,7 @@ gdb_expect {
|
||||
{
|
||||
send_gdb "shell grep factorial msymbols_output\n"
|
||||
gdb_expect {
|
||||
-re "\\\[ *$decimal\\\] T\[ \t\]+$hex factorial.*$gdb_prompt $"\
|
||||
-re "\\\[ *$decimal\\\] \[tT\]\[ \t\]+$hex factorial.*$gdb_prompt $"\
|
||||
{ pass "maint print msymbols" }
|
||||
-re ".*$gdb_prompt $" { fail "maint print msymbols" }
|
||||
timeout { fail "(timeout) maint print msymbols" }
|
||||
@ -329,7 +329,7 @@ gdb_test_multiple "maint print msymbols msymbols_output2 ${subdir}/${testfile}"
|
||||
gdb_test_multiple "shell ls msymbols_output2" "maint print msymbols" {
|
||||
-re "msymbols_output2\r\n$gdb_prompt $" {
|
||||
gdb_test_multiple "shell grep factorial msymbols_output2" "maint print msymbols" {
|
||||
-re "\\\[ *$decimal\\\] T\[ \t\]+$hex factorial.*$gdb_prompt $" {
|
||||
-re "\\\[ *$decimal\\\] \[tT\]\[ \t\]+$hex factorial.*$gdb_prompt $" {
|
||||
pass "maint print msymbols"
|
||||
}
|
||||
-re ".*$gdb_prompt $" {
|
||||
@ -469,6 +469,7 @@ send_gdb "maint info sections DATA\n"
|
||||
gdb_expect {
|
||||
-re ".* \\.text .*$gdb_prompt $" { fail "maint info sections DATA" }
|
||||
-re ".* \\.data .*$gdb_prompt $" { pass "maint info sections DATA" }
|
||||
-re ".* .rodata .*$gdb_prompt $" { pass "maint info sections DATA" }
|
||||
-re ".*$gdb_prompt $" { fail "maint info sections DATA" }
|
||||
timeout { fail "(timeout) maint info sections DATA" }
|
||||
}
|
||||
|
@ -32,6 +32,8 @@ set libsrc "${srcdir}/${subdir}/${libfile}.c"
|
||||
set libname "${libfile}.so"
|
||||
set libobj "${objdir}/${subdir}/${libname}"
|
||||
set execsrc "${srcdir}/${subdir}/${srcfile}"
|
||||
set lib_dlopen [shlib_target_file ${libname}]
|
||||
set lib_syms [shlib_symbol_file ${libname}]
|
||||
|
||||
remote_exec build "rm -f ${binfile}"
|
||||
|
||||
@ -39,7 +41,7 @@ if [get_compiler_info ${binfile}] {
|
||||
return -1
|
||||
}
|
||||
|
||||
set exec_opts [list debug shlib_load additional_flags=-DSHLIB_NAME\=\"${libname}\"]
|
||||
set exec_opts [list debug shlib_load additional_flags=-DSHLIB_NAME\=\"${lib_dlopen}\"]
|
||||
|
||||
if { [gdb_compile_shlib $libsrc $libobj {debug}] != ""
|
||||
|| [gdb_compile $execsrc ${binfile} executable $exec_opts] != "" } {
|
||||
|
@ -30,11 +30,6 @@ if {[skip_shlib_tests]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
# TODO: Use LoadLibrary on this target instead of dlopen.
|
||||
if {[istarget arm*-*-symbianelf*]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
set testfile "unload"
|
||||
set libfile "unloadshr"
|
||||
set libfile2 "unloadshr2"
|
||||
@ -49,13 +44,17 @@ set libsrc $srcdir/$subdir/$libfile.c
|
||||
set libsrc2 $srcdir/$subdir/$libfile2.c
|
||||
set lib_sl $objdir/$subdir/$libname
|
||||
set lib_sl2 $objdir/$subdir/$libname2
|
||||
set lib_dlopen [shlib_target_file ${libname}]
|
||||
set lib_dlopen2 [shlib_target_file ${libname2}]
|
||||
set lib_syms [shlib_symbol_file ${libname}]
|
||||
set lib_syms2 [shlib_symbol_file ${libname2}]
|
||||
|
||||
if [get_compiler_info ${binfile}] {
|
||||
return -1
|
||||
}
|
||||
|
||||
set lib_opts debug
|
||||
set exec_opts [list debug shlib_load additional_flags=-DSHLIB_NAME\=\"${libname}\" additional_flags=-DSHLIB_NAME2\=\"${libname2}\"]
|
||||
set exec_opts [list debug shlib_load additional_flags=-DSHLIB_NAME\=\"${lib_dlopen}\" additional_flags=-DSHLIB_NAME2\=\"${lib_dlopen2}\"]
|
||||
|
||||
if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
|
||||
|| [gdb_compile_shlib $libsrc2 $lib_sl2 $lib_opts] != ""
|
||||
@ -106,7 +105,7 @@ gdb_test "info break" \
|
||||
gdb_breakpoint "$testfile.c:[gdb_get_line_number "y-set-1" $testfile.c]" temporary
|
||||
|
||||
gdb_test "continue" \
|
||||
"Continuing.*warning: Temporarily disabling breakpoints for.*${libname}.*y-set-1.*" \
|
||||
"Continuing.*warning: Temporarily disabling breakpoints for.*${lib_syms}.*y-set-1.*" \
|
||||
"continuing to unloaded libfile"
|
||||
|
||||
gdb_test "print y" " = 10" "print y from libfile"
|
||||
@ -129,7 +128,7 @@ gdb_test "info break" \
|
||||
gdb_breakpoint "$testfile.c:[gdb_get_line_number "y-set-1" $testfile.c]" temporary
|
||||
|
||||
gdb_test "continue" \
|
||||
"Continuing.*warning: Temporarily disabling breakpoints for.*${libname}.*y-set-1.*" \
|
||||
"Continuing.*warning: Temporarily disabling breakpoints for.*${lib_syms}.*y-set-1.*" \
|
||||
"continuing to unloaded libfile"
|
||||
|
||||
set unloadshr_line2 [gdb_get_line_number "unloadshr2 break" ${libsrcfile2}]
|
||||
@ -148,7 +147,7 @@ gdb_test "info break" \
|
||||
gdb_breakpoint "$testfile.c:[gdb_get_line_number "y-set-2" $testfile.c]"
|
||||
|
||||
gdb_test "continue" \
|
||||
"Continuing.*warning: Temporarily disabling breakpoints for.*${libname2}.*y-set-2.*" \
|
||||
"Continuing.*warning: Temporarily disabling breakpoints for.*${lib_syms2}.*y-set-2.*" \
|
||||
"continuing to unloaded libfile2"
|
||||
|
||||
gdb_test "print y" " = 200" "print y from libfile2"
|
||||
|
@ -27,11 +27,6 @@ if {[skip_shlib_tests]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
# TODO: Use LoadLibrary on this target instead of dlopen.
|
||||
if {[istarget arm*-*-symbianelf*]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
set testfile "watchpoint-solib"
|
||||
set libfile "watchpoint-solib-shr"
|
||||
set libname "${libfile}.sl"
|
||||
@ -41,13 +36,15 @@ set binfile $objdir/$subdir/$testfile
|
||||
set shlibdir ${objdir}/${subdir}
|
||||
set libsrc $srcdir/$subdir/$libfile.c
|
||||
set lib_sl $objdir/$subdir/$libname
|
||||
set lib_dlopen [shlib_target_file ${libname}]
|
||||
set lib_syms [shlib_symbol_file ${libname}]
|
||||
|
||||
if [get_compiler_info ${binfile}] {
|
||||
return -1
|
||||
}
|
||||
|
||||
set lib_opts debug
|
||||
set exec_opts [list debug shlib_load additional_flags=-DSHLIB_NAME\=\"${libname}\"]
|
||||
set exec_opts [list debug shlib_load additional_flags=-DSHLIB_NAME\=\"${lib_dlopen}\"]
|
||||
|
||||
if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
|
||||
|| [gdb_compile $srcfile $binfile executable $exec_opts] != ""} {
|
||||
|
@ -22,7 +22,7 @@ if $tracelevel {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
if { [skip_cplus_tests] } { continue }
|
||||
if { [skip_stl_tests] } { continue }
|
||||
|
||||
# On SPU this test fails because the executable exceeds local storage size.
|
||||
if { [istarget "spu*-*-*"] } {
|
||||
@ -38,7 +38,7 @@ if [get_compiler_info ${binfile}] {
|
||||
}
|
||||
|
||||
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug c++"] != "" } {
|
||||
perror "Couldn't compile ${srcfile}"
|
||||
untested bs15503.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
if { [skip_cplus_tests] } { continue }
|
||||
if { [skip_stl_tests] } { continue }
|
||||
|
||||
# On SPU this test fails because the executable exceeds local storage size.
|
||||
if { [istarget "spu*-*-*"] } {
|
||||
|
@ -20,7 +20,7 @@ if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
if { [skip_cplus_tests] } { continue }
|
||||
if { [skip_stl_tests] } { continue }
|
||||
|
||||
# On SPU this test fails because the executable exceeds local storage size.
|
||||
if { [istarget "spu*-*-*"] } {
|
||||
|
@ -22,7 +22,7 @@ if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
if { [skip_cplus_tests] } { continue }
|
||||
if { [skip_stl_tests] } { continue }
|
||||
|
||||
#
|
||||
# test running programs
|
||||
|
@ -24,7 +24,7 @@ if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
if { [skip_cplus_tests] } { continue }
|
||||
if { [skip_stl_tests] } { continue }
|
||||
|
||||
# On SPU this test fails because the executable exceeds local storage size.
|
||||
if { [istarget "spu*-*-*"] } {
|
||||
|
@ -1281,6 +1281,18 @@ proc skip_cplus_tests {} {
|
||||
return 0
|
||||
}
|
||||
|
||||
# Return a 1 for configurations for which don't have both C++ and the STL.
|
||||
|
||||
proc skip_stl_tests {} {
|
||||
# Symbian supports the C++ language, but the STL is missing
|
||||
# (both headers and libraries).
|
||||
if { [istarget "arm*-*-symbianelf*"] } {
|
||||
return 1
|
||||
}
|
||||
|
||||
return [skip_cplus_tests]
|
||||
}
|
||||
|
||||
# Return a 1 if I don't even want to try to test FORTRAN.
|
||||
|
||||
proc skip_fortran_tests {} {
|
||||
@ -1808,11 +1820,14 @@ proc gdb_compile {source dest type options} {
|
||||
if { ([istarget "*-*-mingw*"]
|
||||
|| [istarget *-*-cygwin*]
|
||||
|| [istarget *-*-pe*]
|
||||
|| [istarget arm*-*-symbianelf*]
|
||||
|| [istarget hppa*-*-hpux*])} {
|
||||
# Do not need anything.
|
||||
} elseif { [istarget *-*-openbsd*] } {
|
||||
lappend new_options "additional_flags=-Wl,-rpath,${outdir}"
|
||||
} elseif { [istarget arm*-*-symbianelf*] } {
|
||||
if { $shlib_load } {
|
||||
lappend new_options "libs=-ldl"
|
||||
}
|
||||
} else {
|
||||
if { $shlib_load } {
|
||||
lappend new_options "libs=-ldl"
|
||||
@ -2333,6 +2348,22 @@ proc gdb_load_cmd { args } {
|
||||
return -1
|
||||
}
|
||||
|
||||
# Return the filename to download to the target and load on the target
|
||||
# for this shared library. Normally just LIBNAME, unless shared libraries
|
||||
# for this target have separate link and load images.
|
||||
|
||||
proc shlib_target_file { libname } {
|
||||
return $libname
|
||||
}
|
||||
|
||||
# Return the filename GDB will load symbols from when debugging this
|
||||
# shared library. Normally just LIBNAME, unless shared libraries for
|
||||
# this target have separate link and load images.
|
||||
|
||||
proc shlib_symbol_file { libname } {
|
||||
return $libname
|
||||
}
|
||||
|
||||
# gdb_download
|
||||
#
|
||||
# Copy a file to the remote target and return its target filename.
|
||||
@ -2356,7 +2387,7 @@ proc gdb_load_shlibs { args } {
|
||||
}
|
||||
|
||||
foreach file $args {
|
||||
gdb_download $file
|
||||
gdb_download [shlib_target_file $file]
|
||||
}
|
||||
|
||||
# Even if the target supplies full paths for shared libraries,
|
||||
|
@ -1850,13 +1850,14 @@ proc check_mi_and_console_threads {name} {
|
||||
}
|
||||
}
|
||||
|
||||
# Download shared libraries to the target.
|
||||
proc mi_load_shlibs { args } {
|
||||
if {![is_remote target]} {
|
||||
return
|
||||
}
|
||||
|
||||
foreach file $args {
|
||||
gdb_download $file
|
||||
gdb_download [shlib_target_file $file]
|
||||
}
|
||||
|
||||
# Even if the target supplies full paths for shared libraries,
|
||||
|
Loading…
Reference in New Issue
Block a user