]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp
Automatic Copyright Year update after running gdb/copyright.py
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.base / solib-probes-nosharedlibrary.exp
1 # Copyright 2005-2022 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16 # Regression test for a bug where GDB would misbehave (most likely
17 # crash) if you ran the "nosharelibrary" command, continued execution,
18 # and then the program hit the shared library event breakpoint. GDB
19 # would deference a dangling solib event probe pointer.
20
21 standard_testfile
22
23 if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
24 return -1
25 }
26
27 if {$use_gdb_stub && [target_info exists gdb,do_reload_on_run]} {
28 # This is the path taken by gdbserver "target remote" boards.
29 if { [gdb_reload] != 0 } {
30 untested "could not run to initial instruction"
31 return
32 }
33 pass "stopped at entry"
34 } else {
35 if { [gdb_starti_cmd] < 0 } {
36 untested "could not run to initial instruction"
37 return
38 }
39 gdb_test "" "Program stopped.*" "stopped at entry"
40 }
41
42 # The program should stop at the first instruction, before the shared
43 # library event breakpoint is first hit. On systems where probes are
44 # present in the dynamic linker, such as GNU/Linux, discarding all
45 # shared libraries discards such probes too. The probes-based
46 # interface can no longer be used.
47 gdb_test_no_output "nosharedlibrary"
48
49 # Continue to main(), past the solib event.
50 gdb_breakpoint main
51 gdb_continue_to_breakpoint "main"