X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=gdb%2Ftestsuite%2Fgdb.trace%2Fwhile-dyn.exp;h=8629f067a421f982105670b9c8e03e8c6815fa81;hb=8acc9f485bba28b65935dcc3498d9f3b712ddac7;hp=770fbcd37ef69ed7c257a55d6fb0e9c95bad92a0;hpb=c7b778ff85b50c3ae10c924ad963b9484845a0ea;p=thirdparty%2Fbinutils-gdb.git diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp index 770fbcd37ef..8629f067a42 100644 --- a/gdb/testsuite/gdb.trace/while-dyn.exp +++ b/gdb/testsuite/gdb.trace/while-dyn.exp @@ -1,4 +1,4 @@ -# Copyright 1998, 2007, 2008 Free Software Foundation, Inc. +# Copyright 1998-2013 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 @@ -17,106 +17,93 @@ 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 $" { - untested while-dyn.exp - return -1 - 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 nowarnings}] != "" } { - untested while-dyn.exp - return -1 - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main +standard_testfile actions.c +set executable $testfile +if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ + executable {debug nowarnings}] != "" } { + untested while-dyn.exp + return -1 } +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 support trace" + unsupported "Current target does not support 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 +if [is_amd64_regs_target] { + set fpreg "\$rbp" +} elseif [is_x86_like_target] { + set fpreg "\$ebp" +} else { + set fpreg "\$fp" +} + +proc test_while_stepping { while_stepping } { + global fpreg + global decimal + global gdb_prompt + global executable -gdb_delete_tracepoints -gdb_test "trace gdb_c_test" \ + clean_restart $executable + + gdb_test "tstop" ".*" "" + gdb_test "tfind none" ".*" "" + runto_main + + ## 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" + "$while_stepping: Set tracepoint at gdb_c_test" -gdb_trace_setactions "5.12: define while-stepping " \ + gdb_trace_setactions "5.12: define $while_stepping " \ "" \ - "collect \$fp" "^$" \ - "while-stepping 5" "^$" \ + "collect $fpreg" "^$" \ + "$while_stepping 5" "^$" \ "collect p" "^$" \ "end" "^$" \ "end" "" -gdb_test "tstart" "" "" + 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 "break end" ".*" "" gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} + "Continuing.*Breakpoint $decimal, end.*" \ + "$while_stepping: run trace experiment" -gdb_test "tstop" "" "" + gdb_test "tstop" ".*" "" -gdb_tfind_test "5.12: frame 5 should be the last one collected" "5" "5" + gdb_tfind_test "$while_stepping: 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" + set test "$while_stepping: trace stopped after 5 stepping frames" + gdb_test_multiple "tfind 6" "$test" { + -re "failed to find.*$gdb_prompt $" { + pass "$test" + } + -re ".*$gdb_prompt $" { + fail "$test" + } } + + gdb_test "tfind none" ".*" "" } -gdb_test "tfind none" "" "" +# Test all while-stepping aliases. + +test_while_stepping "while-stepping" +test_while_stepping "stepping" +test_while_stepping "ws"