diff options
Diffstat (limited to 'gdb/testsuite/gdb.trace/while-dyn.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/while-dyn.exp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp new file mode 100644 index 00000000000..a6ff0fc7850 --- /dev/null +++ b/gdb/testsuite/gdb.trace/while-dyn.exp @@ -0,0 +1,124 @@ +# 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 0 +set bug_id 0 + +gdb_exit +gdb_start + +if [istarget "m68k-*-elf"] then { + load_lib "emc-support.exp" + set testfile "gdb_c_test" + set srcfile $testfile.c + set binfile [board_info target d490_binfile]; + gdb_test "set remotetimeout 6" "" "" + set timeout 500 + gdb_target_monitor "$binfile" + # Give a TSTOP and ignore errors, to make sure any previous trace is off + gdb_test "tstop" "" "" + gdb_test "tfind none" "" "" + send_gdb "compare-section CS\n" + gdb_expect { + -re "MIS-MATCHED.*$gdb_prompt $" { + gdb_suppress_entire_file "Symbol file does not match target! + all tests in this module will fail."; + } + -re ".*$gdb_prompt $" { } + } +} 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_load $binfile + gdb_test "tstop" "" "" + gdb_test "tfind none" "" "" + runto_main +} +gdb_reinitialize_dir $srcdir/$subdir + +# We generously give ourselves one "pass" if we successfully +# detect that this test cannot be run on this target! +if { ![gdb_target_supports_trace] } then { + pass "Current target does not supporst trace" + return 1; + +} + +# If testing on a remote host, download the source file. +# remote_download host $srcdir/$subdir/$srcfile + +# +# test while-stepping dynamically (live target) +# + +## verify number of trace frames collected matches stepcount + +gdb_delete_tracepoints +gdb_test "trace gdb_c_test" \ + "Tracepoint $decimal at .*" \ + "Set tracepoint at gdb_c_test" + +gdb_trace_setactions "5.12: define while-stepping <stepcount>" \ + "" \ + "collect \$fp" "^$" \ + "while-stepping 5" "^$" \ + "collect p" "^$" \ + "end" "^$" \ + "end" "" + +gdb_test "tstart" "" "" + +if [istarget "m68k-*-elf"] then { + gdb_emclaptop_command "85,1,2,3,4,5,6" + sleep 5 +} else { + gdb_test "break end" "" "" + gdb_test "continue" \ + "Continuing.*Breakpoint $decimal, end.*" \ + "run trace experiment" +} + +gdb_test "tstop" "" "" + +gdb_tfind_test "5.12: frame 5 should be the last one collected" "5" "5" + +send_gdb "tfind 6\n" +gdb_expect { + -re "failed to find.*$gdb_prompt $" { + pass "5.12: trace stopped after 5 stepping frames" + } + -re ".*$gdb_prompt $" { + fail "5.12: trace stopped after 5 stepping frames" + } +} + +gdb_test "tfind none" "" "" |