
This commit is the result of running the gdb/copyright.py script, which automated the update of the copyright year range for all source files managed by the GDB project to be updated to include year 2023.
77 lines
2.6 KiB
Text
77 lines
2.6 KiB
Text
# This testcase is part of GDB, the GNU debugger.
|
|
|
|
# Copyright 2010-2023 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/>.
|
|
|
|
# Test SIGILL generated by some special cases of breakpoints on ia64. Problem
|
|
# was SIGILL being stored in non-current thread for later retrieval when its
|
|
# breakpoint has been already deleted. moribund locations are not active in
|
|
# the default all-stop mode.
|
|
|
|
standard_testfile
|
|
if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" ${binfile} executable [list debug additional_flags=-lrt]] != "" } {
|
|
return -1
|
|
}
|
|
|
|
clean_restart $testfile
|
|
|
|
if ![runto_main] {
|
|
return -1
|
|
}
|
|
|
|
set test "info addr label"
|
|
gdb_test_multiple $test $test {
|
|
-re "Symbol \"label\" is at 0x\[0-9a-f\]+0 in .*\r\n$gdb_prompt $" {
|
|
# Verify the label really starts at the start of ia64 bundle.
|
|
pass $test
|
|
|
|
# ia64 generates SIGILL for breakpoint at B slot of an MIB bundle.
|
|
gdb_test "break *label+2" {Breakpoint [0-9]+ at 0x[0-9a-f]+2:.*}
|
|
}
|
|
-re "No symbol \"label\" in current context\\.\r\n$gdb_prompt $" {
|
|
pass $test
|
|
|
|
# Either this target never generates non-SIGTRAP signals or they do
|
|
# not depend on the breakpoint address. Try any address.
|
|
gdb_breakpoint [gdb_get_line_number "break-here"]
|
|
}
|
|
}
|
|
|
|
gdb_test_no_output {set $sigill_bpnum=$bpnum}
|
|
|
|
gdb_breakpoint [gdb_get_line_number "break-at-exit"]
|
|
|
|
gdb_test_no_output "set debug infrun 1"
|
|
|
|
# The ia64 SIGILL signal is visible only in the linux-nat debug output.
|
|
|
|
set prompt "$gdb_prompt \\\[infrun\\\] fetch_inferior_event: exit\r\n$"
|
|
gdb_test_multiple "continue" "continue" -prompt $prompt {
|
|
-re "Breakpoint \[0-9\]+,( .* in)? thread_func .*$prompt$" {
|
|
pass $gdb_test_name
|
|
}
|
|
}
|
|
|
|
gdb_test_no_output {delete $sigill_bpnum}
|
|
|
|
gdb_test_multiple "continue" "continue for the pending signal" -prompt $prompt {
|
|
-re "Breakpoint \[0-9\]+, .*break-at-exit.*\r\n$prompt$" {
|
|
# Breakpoint has been skipped in the other thread.
|
|
pass $gdb_test_name
|
|
}
|
|
-re " received signal .*\r\n$gdb_prompt $" {
|
|
fail $gdb_test_name
|
|
}
|
|
}
|