mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-10 01:52:28 +08:00

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.
124 lines
3.6 KiB
Plaintext
124 lines
3.6 KiB
Plaintext
# Copyright 2006-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 that the source command's verbose mode works, the 'set trace-commands'
|
|
# command works, and that the nest depth is correct in various circumstances.
|
|
|
|
gdb_exit
|
|
gdb_start
|
|
|
|
# Create a file to source
|
|
set tracecommandsscript [standard_output_file tracecommandsscript]
|
|
set fd [open "$tracecommandsscript" w]
|
|
puts $fd "\
|
|
echo in tracecommandsscript\\n
|
|
define func
|
|
echo in func \$arg0\\n
|
|
end
|
|
if 1
|
|
if 2
|
|
if 3
|
|
if 4
|
|
echo deep\\n
|
|
func 999
|
|
end
|
|
end
|
|
end
|
|
end
|
|
"
|
|
close $fd
|
|
|
|
# Make sure that the show trace-commands exists and the default is 'off'.
|
|
gdb_test "show trace-commands" "State of GDB CLI command tracing is off\\." \
|
|
"show trace-commands says off"
|
|
|
|
# Source the script with verbose mode.
|
|
gdb_test_sequence "source -v $tracecommandsscript" "source -v" {
|
|
{[\r\n]\+echo in tracecommandsscript\\n}
|
|
{[\r\n]\+define func}
|
|
{[\r\n]\+if 1}
|
|
{[\r\n]\+\+if 2}
|
|
{[\r\n]\+\+\+if 3}
|
|
{[\r\n]\+\+\+\+if 4}
|
|
{[\r\n]\+\+\+\+\+echo deep\\n}
|
|
{[\r\n]\+\+\+\+\+func 999}
|
|
{[\r\n]\+\+\+\+\+\+echo in func 999\\n}
|
|
}
|
|
|
|
# Turn on command tracing.
|
|
gdb_test_no_output "set trace-commands" "set trace-commands"
|
|
|
|
# Make sure show trace-commands now gives 'on'.
|
|
gdb_test "show trace-commands" \
|
|
{\+show trace-commands[\r\n]+State of GDB CLI command tracing is on\.} \
|
|
"show trace-commands says on"
|
|
|
|
# Simple test
|
|
gdb_test "echo hi\\n" {\+echo hi\\n[\r\n]+hi} "simple trace-commands test"
|
|
|
|
# Nested test
|
|
gdb_test_sequence "if 1\nset \$i = 0\nwhile \$i < 5\nfunc \$i\nset \$i += 1\nend\nend" \
|
|
"nested trace-commands test" {
|
|
{[\r\n]\+if 1}
|
|
{[\r\n]\+\+set \$i = 0}
|
|
{[\r\n]\+\+while \$i < 5}
|
|
{[\r\n]\+\+\+func \$i}
|
|
{[\r\n]\+\+\+\+echo in func \$i\\n}
|
|
{[\r\n]\+\+\+set \$i \+= 1}
|
|
{[\r\n]\+\+\+func \$i}
|
|
{[\r\n]\+\+\+\+echo in func \$i\\n}
|
|
{[\r\n]\+\+\+set \$i \+= 1}
|
|
{[\r\n]\+\+\+func \$i}
|
|
{[\r\n]\+\+\+\+echo in func \$i\\n}
|
|
{[\r\n]\+\+\+set \$i \+= 1}
|
|
{[\r\n]\+\+\+func \$i}
|
|
{[\r\n]\+\+\+\+echo in func \$i\\n}
|
|
{[\r\n]\+\+\+set \$i \+= 1}
|
|
{[\r\n]\+\+\+func \$i}
|
|
{[\r\n]\+\+\+\+echo in func \$i\\n}
|
|
{[\r\n]\+\+\+set \$i \+= 1}
|
|
}
|
|
|
|
# Function with source works
|
|
gdb_test_sequence "define topfunc\nsource $tracecommandsscript\nend" \
|
|
"define user command" {
|
|
{[\r\n]\+define topfunc}
|
|
}
|
|
gdb_test_sequence "topfunc" "nested trace-commands test with source" {
|
|
{[\r\n]\+topfunc}
|
|
{[\r\n]\+\+source .*/tracecommandsscript}
|
|
{[\r\n]\+\+echo in tracecommandsscript\\n}
|
|
{[\r\n]\+\+define func}
|
|
{[\r\n]\+\+if 1}
|
|
{[\r\n]\+\+\+if 2}
|
|
{[\r\n]\+\+\+\+if 3}
|
|
{[\r\n]\+\+\+\+\+if 4}
|
|
{[\r\n]\+\+\+\+\+\+echo deep\\n}
|
|
{[\r\n]\+\+\+\+\+\+func 999}
|
|
{[\r\n]\+\+\+\+\+\+\+echo in func 999\\n}
|
|
}
|
|
|
|
# Test nest depth resets properly on error
|
|
gdb_test_sequence "if 1\nif 2\nload\necho should not get here\\n\nend\nend" \
|
|
"depth resets on error part 1" {
|
|
{[\r\n]\+if 1}
|
|
{[\r\n]\+\+if 2}
|
|
{[\r\n]\+\+\+load}
|
|
{[\r\n]No executable file specified\.}
|
|
{[\r\n]Use the "file" or "exec-file" command\.}
|
|
}
|
|
gdb_test "echo hi\\n" {[\r\n]\+echo hi\\n[\r\n]+hi} \
|
|
"depth resets on error part 2"
|