📄 actions.exp
字号:
# Copyright (C) 1998 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 2 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, write to the Free Software# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to:# bug-gdb@prep.ai.mit.edu# This file was written by Michael Snyder (msnyder@cygnus.com)load_lib "trace-support.exp";if $tracelevel then { strace $tracelevel}set prms_id 0set bug_id 0gdb_exitgdb_startif [istarget "m68k-*-elf"] then { set binfile [board_info target d490_binfile]; set srcfile gdb_c_test.c} else { set testfile "actions" set srcfile ${testfile}.c set binfile $objdir/$subdir/$testfile if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ executable {debug additional_flags=-w}] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." }}gdb_reinitialize_dir $srcdir/$subdir# If testing on a remote host, download the source file.# remote_download host $srcdir/$subdir/$srcfilegdb_file_cmd $binfile# define relative source line numbers:# all subsequent line numbers are relative to this first one (baseline)set baseline [gdb_find_recursion_test_baseline $srcfile];if { $baseline == -1 } then { fail "Could not find gdb_recursion_test function" return;}set testline1 [expr $baseline + 7]## test actions command#gdb_delete_tracepointsset trcpt1 [gdb_gettpnum gdb_c_test];set trcpt2 [gdb_gettpnum gdb_asm_test];set trcpt3 [gdb_gettpnum $testline1];if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { fail "setting tracepoints" return;}# 5.1 actions of specified tracepointsend_gdb "info tracepoints\n"gdb_expect { -re "Actions for tracepoint \[0-9\]+:.*$gdb_prompt $" { fail "5.1a: testsuite failure (tracepoint already has action)!" } -re "No tracepoints.*$gdb_prompt $" { fail "5.1a: set three tracepoints, no actions (No tracepoints!)" } -re "$gdb_prompt $" { pass "5.1a: set three tracepoints, no actions" }}gdb_trace_setactions "5.1b: set actions for first tracepoint" \ "$trcpt1" \ "collect gdb_char_test" "^$"send_gdb "info tracepoints\n"gdb_expect { -re "Actions for.* $trcpt1:.*collect gdb_char_test.*$gdb_prompt $" { pass "5.1c: verify actions set for first tracepoint" } -re "$gdb_prompt $" { fail "5.1c: verify actions set for first tracepoint" }}gdb_trace_setactions "5.1d: set actions for second tracepoint" \ "$trcpt2" \ "collect gdb_short_test" "^$"send_gdb "info tracepoints\n"gdb_expect { -re "Actions for.* $trcpt2:.*collect gdb_short_test.*$gdb_prompt $" { pass "5.1e: verify actions set for second tracepoint" } -re "$gdb_prompt $" { fail "5.1e: verify actions set for second tracepoint" }}gdb_trace_setactions "5.2a: set actions for last (default) tracepoint" \ "" \ "collect gdb_long_test" "^$"send_gdb "info tracepoints\n"gdb_expect { -re "Actions for.* $trcpt3:.*collect gdb_long_test.*$gdb_prompt $" { pass "5.2b: verify actions set for last (default) tracepoint" } -re "$gdb_prompt $" { fail "5.2b: verify actions set for last (default) tracepoint" }}# 5.3 replace actions set earliergdb_trace_setactions "5.3a: reset actions for first tracepoint" \ "$trcpt1" \ "collect gdb_struct1_test" "^$"send_gdb "info tracepoints\n"gdb_expect { -re "Actions for.* $trcpt1:.*collect gdb_struct1_test.*$gdb_prompt $" { pass "5.3b: verify actions set for first tracepoint" } -re "$gdb_prompt $" { fail "5.3b: verify actions set for first tracepoint" }}## test end command (all by itself)## 5.4 end outside of contextgdb_test "end" "This command cannot be used at the top level." \ "5.4: 'end' command out of context"# 5.5 empty actions (just an end with no other actions)gdb_trace_setactions "5.5a: set empty actions for first tracepoint" \ "$trcpt1"send_gdb "info tracepoints\n"gdb_expect { -re "No tracepoints.*$gdb_prompt $" { fail "5.5c: verify NO actions for first tracepoint" } -re "Actions for.* $trcpt1:.*$gdb_prompt $" { fail "5.5c: verify NO actions for first tracepoint" } -re "$gdb_prompt $" { pass "5.5c: verify NO actions for first tracepoint" }}# 5.6 actions for invalid tracepoint numbergdb_test "actions [expr $trcpt2 + $trcpt3]" \ "No tracepoint number [expr $trcpt2 + $trcpt3]." \ "5.6: actions for invalid tracepoint number"# 5.7 invalid action (other than 'collect', 'while-stepping' or 'end')# "warning: .print gdb_c_test. is not a supported trace.*> $" \gdb_trace_setactions "5.7: invalid action" \ "$trcpt1" \ "print gdb_c_test" \ "warning: .print gdb_c_test. is not a supported trace"# 5.8 help actions (collect, while-stepping, end)gdb_test "help actions" \ "Specify the actions to be taken at a tracepoint.*" \ "5.8a: help actions"gdb_test "help collect" \ "Specify one or more data items to be collected at a tracepoint.*" \ "5.8b: help collect"gdb_test "help while-stepping" \ "Specify single-stepping behavior at a tracepoint.*" \ "5.8c: help while-stepping"gdb_test "help end" "Ends a list of commands or actions.*" \ "5.8d: help end"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -