mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-19 01:19:41 +08:00
This commit is the result of the following actions:
- Running gdb/copyright.py to update all of the copyright headers to
include 2024,
- Manually updating a few files the copyright.py script told me to
update, these files had copyright headers embedded within the
file,
- Regenerating gdbsupport/Makefile.in to refresh it's copyright
date,
- Using grep to find other files that still mentioned 2023. If
these files were updated last year from 2022 to 2023 then I've
updated them this year to 2024.
I'm sure I've probably missed some dates. Feel free to fix them up as
you spot them.
106 lines
3.3 KiB
Plaintext
106 lines
3.3 KiB
Plaintext
# Copyright 2019-2024 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/>.
|
|
|
|
standard_testfile
|
|
|
|
set epilogue [have_epilogue_line_info]
|
|
|
|
if { [prepare_for_testing "failed to prepare" "skip-inline" \
|
|
{skip-inline.c skip1.c } \
|
|
{debug nowarnings}] } {
|
|
return -1
|
|
}
|
|
|
|
set srcfile skip-inline.c
|
|
set srcfile1 skip1.c
|
|
|
|
proc_with_prefix single_step { } {
|
|
if ![runto_main] {
|
|
return
|
|
}
|
|
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "in the main"
|
|
gdb_test "step" ".*" "step into baz, since foo will be skipped"
|
|
gdb_test "bt" "\\s*\\#0\\s+baz.*" "in the baz, since foo was skipped"
|
|
gdb_step_until ".*x = 0; x = baz \\(foo \\(\\)\\).*"
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "again in the main"
|
|
gdb_test "step" ".*" "step again into baz, since foo will be skipped"
|
|
gdb_test "bt" "\\s*\\#0\\s+baz.*" "again in the baz"
|
|
gdb_step_until "main \\(\\) at .*" "step back to main, again"
|
|
gdb_test "bt" "\\s*\\#0.*main.*" "again back to main"
|
|
}
|
|
|
|
proc_with_prefix double_step { } {
|
|
if ![runto_main] {
|
|
return
|
|
}
|
|
|
|
with_test_prefix "double step" {
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "in the main"
|
|
gdb_test "step 2" ".*" "step into baz, since foo will be skipped"
|
|
gdb_test "bt" "\\s*\\#0\\s+baz.*" "still in the baz"
|
|
gdb_test "step" ".*" "step back to main"
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "again in the main"
|
|
gdb_test "step 2" ".*" "step again into baz, since foo will be skipped"
|
|
gdb_test "bt" "\\s*\\#0\\s+baz.*" "again in the baz"
|
|
gdb_test "step" ".*" "step back to main, again"
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "again back to main"
|
|
}
|
|
}
|
|
|
|
proc_with_prefix triple_step { } {
|
|
if ![runto_main] {
|
|
return
|
|
}
|
|
|
|
with_test_prefix "triple step" {
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "in the main"
|
|
gdb_test "step 3" ".*" "step over baz"
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "again in the main"
|
|
gdb_test "step 3" ".*" "step over baz, again"
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "again back to main"
|
|
}
|
|
}
|
|
|
|
proc_with_prefix skip_current_frame { } {
|
|
if ![runto_main] {
|
|
return
|
|
}
|
|
|
|
gdb_test "skip delete" ".*" "skip delete"
|
|
|
|
gdb_test "bt" "\\s*\\#0\\s+main.*" "in the main"
|
|
gdb_test "step" ".*" "step into foo"
|
|
gdb_test "bt" "\\s*\\#0\\s+foo.*" "in the foo"
|
|
gdb_test "skip" "Function foo will be skipped when stepping\." "skip"
|
|
}
|
|
|
|
# Create a skiplist entry for a specified file and function.
|
|
|
|
gdb_test "skip function foo" "Function foo will be skipped when stepping\."
|
|
|
|
single_step
|
|
|
|
# Some compilers link the epilogue of functions to the line containing the
|
|
# closing brace, while others dont. The behavior ends up so out of sync
|
|
# with multiple steps at a time, that completely different procs would need
|
|
# to be made, and it is frankly unnecessary.
|
|
if {$epilogue} {
|
|
double_step
|
|
triple_step
|
|
}
|
|
|
|
skip_current_frame
|