-# Copyright 2007 Free Software Foundation, Inc.
+# Copyright 2007-2016 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
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-if $tracelevel then {
- strace $tracelevel
-}
-
#
# test running programs
#
-set prms_id 0
-set bug_id 0
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"
set libsrcfile ${libfile}.c
set srcfile $srcdir/$subdir/$testfile.c
-set binfile $objdir/$subdir/$testfile
-set shlibdir ${objdir}/${subdir}
+set binfile [standard_output_file $testfile]
+set shlibdir [standard_output_file {}]
set libsrc $srcdir/$subdir/$libfile.c
-set lib_sl $objdir/$subdir/$libname
+set lib_sl [standard_output_file $libname]
+set lib_dlopen [shlib_target_file ${libname}]
+set lib_syms [shlib_symbol_file ${libname}]
-if [get_compiler_info ${binfile}] {
+if [get_compiler_info] {
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] != ""} {
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
-gdb_load_shlibs $lib_sl
-
-if [target_info exists gdb_stub] {
- gdb_step_for_stub;
-}
+gdb_load_shlib $lib_sl
runto_main
+# Disable hardware watchpoints if necessary.
+if [target_info exists gdb,no_hardware_watchpoints] {
+ gdb_test_no_output "set can-use-hw-watchpoints 0" ""
+}
+
# Test that if we set a watchpoint on a global variable
# in a explicitly loaded shared library, and then
# re-run the application, gdb does not crash.
}
gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo"
-gdb_test "watch g" "Hardware watchpoint 3: g" "set watchpoint on g"
+gdb_test "watch g" "atchpoint 3: g" "set watchpoint on g"
gdb_test "continue" ".*New value = 1.*" "continue to watchpoint hit"
rerun_to_main
-gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo again"
-gdb_test "continue" ".*New value = 1.*" "continue to watchpoint hit again"
-
-
-
+with_timeout_factor 30 {
+ gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo again"
+}
+gdb_test "continue" ".*New value = 1.*" "continue to watchpoint hit again"