1# Copyright 1998 Free Software Foundation, Inc. 2# 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 2 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program; if not, write to the Free Software 15# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 17# Please email any bugs, comments, and/or additions to this file to: 18# bug-gdb@prep.ai.mit.edu 19 20# This file was written by Michael Snyder (msnyder@cygnus.com) 21 22load_lib "trace-support.exp"; 23 24if $tracelevel then { 25 strace $tracelevel 26} 27 28set prms_id 0 29set bug_id 0 30 31gdb_exit 32gdb_start 33 34if [istarget "m68k-*-elf"] then { 35 set srcfile gdb_c_test.c 36 set binfile [board_info target d490_binfile]; 37} else { 38 set testfile "actions" 39 set srcfile ${testfile}.c 40 set binfile ${objdir}/${subdir}/${testfile} 41 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" $binfile \ 42 executable {debug additional_flags=-w}] != "" } { 43 gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." 44 } 45} 46gdb_reinitialize_dir $srcdir/$subdir 47 48# If testing on a remote host, download the source file. 49# remote_download host $srcdir/$subdir/$srcfile 50 51gdb_file_cmd $binfile 52 53# 54# test while-stepping command 55# 56 57gdb_delete_tracepoints 58set trcpt1 [gdb_gettpnum gdb_c_test] 59if { $trcpt1 <= 0 } then { 60 fail "Could not find gdb_c_test function" 61 return; 62} 63 64# 5.12 basic while-stepping command (collect regs) 65 66gdb_test "info tracepoints" \ 67 "Num Enb Address\[ \]+PassC StepC What.*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+0\[\t \]+.*in gdb_c_test.*" \ 68 "5.12: set a tracepoint, stepcount is zero" 69 70set stepcount 12 71 72gdb_trace_setactions "5.12: set stepcount to $stepcount" \ 73 "" \ 74 "while-stepping $stepcount" "" \ 75 "collect \$regs" "^$" \ 76 "end" "" 77 78gdb_test "info tracepoints" \ 79 "Num Enb Address\[ \]+PassC StepC What.*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+$stepcount\[\t \]+.*in gdb_c_test.*" \ 80 "5.12: confirm stepcount set to $stepcount" 81 82gdb_test "info tracepoints" \ 83 "Num Enb Address\[ \]+PassC StepC What.* 84.*while-stepping $stepcount.*" \ 85 "5.12: info trace shows \"while-stepping\"" 86 87 88# 5.13 step out of context while collecting local variable 89# [deferred to dynamic test section] 90 91proc while_stepping_bogus_arg { bogus msgstring } { 92 global gdb_prompt; 93 94 gdb_trace_setactions "$msgstring" \ 95 "" \ 96 "while-stepping $bogus" "\[Ee\]rror|\[Ww\]arning" 97} 98 99# 5.14 while-stepping (no argument) 100 101while_stepping_bogus_arg "" "5.14: while-stepping null stepcount" 102 103# 5.15 while-stepping (zero stepcount) 104 105while_stepping_bogus_arg "0" "5.15: while-stepping rejects zero stepcount" 106 107# 5.16 while-stepping without collecting anything 108gdb_trace_setactions "5.16: step without collecting anything" \ 109 "" \ 110 "while-stepping $stepcount" "^$" \ 111 "end" "" 112 113gdb_test "info tracepoints" \ 114 ".*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+$stepcount\[\t \]+.*in gdb_c_test.*\[ \t\]+Actions for tracepoint $trcpt1:.*\[ \t\]+while-stepping $stepcount.*\[ \t\]+end.*\[ \t\]+end.*" \ 115 "5.16: confirm actions, step without collecting anything" 116 117