diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-06-24 15:17:32 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-06-24 15:17:32 +0000 |
commit | 628fe4e4a9819d823ef97acacb01c01e39d3fc50 (patch) | |
tree | 39b0748668f15eb7c410e118a5a534b3baf083da /gdb/testsuite | |
parent | f1421989e756090c82431b85a3766b892361182e (diff) | |
download | gdb-628fe4e4a9819d823ef97acacb01c01e39d3fc50.zip gdb-628fe4e4a9819d823ef97acacb01c01e39d3fc50.tar.gz gdb-628fe4e4a9819d823ef97acacb01c01e39d3fc50.tar.bz2 |
gdb/
Fix PR 9436.
* breakpoint.c (handle_jit_event): New function.
(bpstat_what): Remove enum class, kc, ss, sn, sgl, slr, clr, sr, shl,
jit, err, table and bs_class. New variables shlib_event, jit_event,
this_action and bptype. Change bs_class assignments to this_action
assignments. new unhandled bptype internal error. Move here
shlib_event and jit_event handling from handle_inferior_event.
* breakpoint.h (enum bpstat_what_main_action): Extend the comment.
Reorder items. Remove BPSTAT_WHAT_CHECK_SHLIBS and
BPSTAT_WHAT_CHECK_JIT.
* inferior.h (debug_infrun, stop_on_solib_events): New declarations.
* infrun.c (debug_infrun, stop_on_solib_events): Remove static.
(handle_inferior_event): Reinitialize frame and gdbarch after
bpstat_what call. Move BPSTAT_WHAT_CHECK_SHLIBS and
BPSTAT_WHAT_CHECK_JIT handling to bpstat_what. Reinitialize even
gdbarch when frame gets reinitialized.
gdb/testsuite/
Test PR 9436.
* gdb.base/nostdlib.exp, gdb.base/nostdlib.c: New.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/nostdlib.c | 29 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/nostdlib.exp | 54 |
3 files changed, 88 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3808ba5..f56a2a7 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-06-24 Jan Kratochvil <jan.kratochvil@redhat.com> + + Test PR 9436. + * gdb.base/nostdlib.exp, gdb.base/nostdlib.c: New. + 2010-06-24 Hui Zhu <teawater@gmail.com> * gdb.base/eval.exp: New file. diff --git a/gdb/testsuite/gdb.base/nostdlib.c b/gdb/testsuite/gdb.base/nostdlib.c new file mode 100644 index 0000000..9604680 --- /dev/null +++ b/gdb/testsuite/gdb.base/nostdlib.c @@ -0,0 +1,29 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2010 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 + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +void +_start (void) +{ + extern void marker (void); + + marker (); +} + +void +marker (void) +{ +} diff --git a/gdb/testsuite/gdb.base/nostdlib.exp b/gdb/testsuite/gdb.base/nostdlib.exp new file mode 100644 index 0000000..59350d3 --- /dev/null +++ b/gdb/testsuite/gdb.base/nostdlib.exp @@ -0,0 +1,54 @@ +# Copyright 2010 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 +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set testfile "nostdlib" +set srcfile ${testfile}.c +set executable ${testfile} +set binfile ${objdir}/${subdir}/${executable} + +# default_target_compile would otherwise add "-lm" making the testcase +# dependent on whether the system libraries are already prelinked. +# prelink: Could not set /lib64/libm-2.11.1.so owner or mode: Operation not permitted +set compile { + gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-nostdlib} +} +set board [target_info name] +if [board_info $board exists mathlib] { + set mathlib [board_info $dest mathlib] + set_board_info mathlib "" + set err [eval $compile] + set_board_info mathlib $mathlib +} else { + set_board_info mathlib "" + set err [eval $compile] + unset_board_info mathlib +} +if {$err != ""} { + untested ${testfile}.exp + return -1 +} + +clean_restart $executable + +gdb_breakpoint "*marker" +gdb_breakpoint "*_start" + +gdb_run_cmd + +# Breakpoint 2, Stopped due to shared library event +# _start () at ./gdb.base/nostdlib.c:20 +gdb_test "" {Breakpoint [0-9]+, .*_start .*} "stop at run" + +gdb_test "continue" {Breakpoint [0-9]+, marker .*} "continue to marker" |