mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
4a94e36819
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
61 lines
2.5 KiB
Plaintext
61 lines
2.5 KiB
Plaintext
# Copyright 2020-2022 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/>.
|
|
|
|
# Check for an issue in GDB where buildsym_compunit::record_line was
|
|
# removing duplicate line table entries, but skip_prologue_using_sal
|
|
# depends on these duplicates to spot the end of the prologue.
|
|
#
|
|
# When the de-duplication was added this regression was not spotted as
|
|
# it requires a particular combination of a (very) small function
|
|
# being inlined into an also very small outer function.
|
|
#
|
|
# See also gdb.dwarf/dw2-inline-small-func.exp for a version of this
|
|
# test that makes use of the Dejagnu DWARF compiler.
|
|
#
|
|
# This test simply compiles with optimization and checks that GDB can
|
|
# do something suitable with the compiled binary. Problems with this
|
|
# test are most likely to occur when GDB asks the target specific code
|
|
# to skip the prologue (gdbarch_skip_prologue). Some targets make use
|
|
# of skip_prologue_using_sal, which should be fine, however, some
|
|
# targets make a poor attempt to duplicate parts of
|
|
# skip_prologue_using_sal, these targets could easily fail this test.
|
|
# This is not (necessarily) a problem with this test, but could
|
|
# indicate a weakness with the target in question.
|
|
|
|
standard_testfile inline-small-func.c inline-small-func.h
|
|
|
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
|
[list $srcfile] {debug optimize=-O1}] } {
|
|
return -1
|
|
}
|
|
|
|
if ![runto_main] {
|
|
return -1
|
|
}
|
|
|
|
# Delete all breakpoints so that the output of "info breakpoints"
|
|
# below will only contain a single breakpoint.
|
|
delete_breakpoints
|
|
|
|
# Place a breakpoint within the function in the header file.
|
|
set linenum [gdb_get_line_number "callee: body" $srcfile2]
|
|
gdb_breakpoint "${srcfile2}:${linenum}"
|
|
|
|
# Check that the breakpoint was placed where we expected. It should
|
|
# appear at the requested line. When the bug in GDB was present the
|
|
# breakpoint would be placed on one of the following lines instead.
|
|
gdb_test "info breakpoints" \
|
|
".* in callee at \[^\r\n\]+${srcfile2}:${linenum}\\y.*"
|