OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-old/gdb-6.8/gdb/testsuite/gdb.trace
    from Rev 816 to Rev 827
    Reverse comparison

Rev 816 → Rev 827

/Makefile.in File deleted
/gdb_c_test.c File deleted
gdb_c_test.c Property changes : Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -Id \ No newline at end of property Index: actions.c =================================================================== --- actions.c (revision 816) +++ actions.c (nonexistent) @@ -1,134 +0,0 @@ -/* - * Test program for trace action commands - */ - -static char gdb_char_test; -static short gdb_short_test; -static long gdb_long_test; -static char gdb_arr_test[25]; -static struct GDB_STRUCT_TEST -{ - char c; - short s; - long l; - int bfield : 11; /* collect bitfield */ - char arr[25]; - struct GDB_STRUCT_TEST *next; -} gdb_struct1_test, gdb_struct2_test, *gdb_structp_test, **gdb_structpp_test; - -static union GDB_UNION_TEST -{ - char c; - short s; - long l; - int bfield : 11; /* collect bitfield */ - char arr[4]; - union GDB_UNION_TEST *next; -} gdb_union1_test; - -void gdb_recursion_test (int, int, int, int, int, int, int); - -void gdb_recursion_test (int depth, - int q1, - int q2, - int q3, - int q4, - int q5, - int q6) -{ /* gdb_recursion_test line 0 */ - int q = q1; /* gdbtestline 1 */ - - q1 = q2; /* gdbtestline 2 */ - q2 = q3; /* gdbtestline 3 */ - q3 = q4; /* gdbtestline 4 */ - q4 = q5; /* gdbtestline 5 */ - q5 = q6; /* gdbtestline 6 */ - q6 = q; /* gdbtestline 7 */ - if (depth--) /* gdbtestline 8 */ - gdb_recursion_test (depth, q1, q2, q3, q4, q5, q6); /* gdbtestline 9 */ -} - - -unsigned long gdb_c_test( unsigned long *parm ) - -{ - char *p = "gdb_c_test"; - char *ridiculously_long_variable_name_with_equally_long_string_assignment; - register long local_reg = 7; - static unsigned long local_static, local_static_sizeof; - long local_long; - unsigned long *stack_ptr; - unsigned long end_of_stack; - - ridiculously_long_variable_name_with_equally_long_string_assignment = - "ridiculously long variable name with equally long string assignment"; - local_static = 9; - local_static_sizeof = sizeof (struct GDB_STRUCT_TEST); - local_long = local_reg + 1; - stack_ptr = (unsigned long *) &local_long; - end_of_stack = - (unsigned long) &stack_ptr + sizeof(stack_ptr) + sizeof(end_of_stack) - 1; - - gdb_char_test = gdb_struct1_test.c = (char) ((long) parm[1] & 0xff); - gdb_short_test = gdb_struct1_test.s = (short) ((long) parm[2] & 0xffff); - gdb_long_test = gdb_struct1_test.l = (long) ((long) parm[3] & 0xffffffff); - gdb_union1_test.l = (long) parm[4]; - gdb_arr_test[0] = gdb_struct1_test.arr[0] = (char) ((long) parm[1] & 0xff); - gdb_arr_test[1] = gdb_struct1_test.arr[1] = (char) ((long) parm[2] & 0xff); - gdb_arr_test[2] = gdb_struct1_test.arr[2] = (char) ((long) parm[3] & 0xff); - gdb_arr_test[3] = gdb_struct1_test.arr[3] = (char) ((long) parm[4] & 0xff); - gdb_arr_test[4] = gdb_struct1_test.arr[4] = (char) ((long) parm[5] & 0xff); - gdb_arr_test[5] = gdb_struct1_test.arr[5] = (char) ((long) parm[6] & 0xff); - gdb_struct1_test.bfield = 144; - gdb_struct1_test.next = &gdb_struct2_test; - gdb_structp_test = &gdb_struct1_test; - gdb_structpp_test = &gdb_structp_test; - - gdb_recursion_test (3, (long) parm[1], (long) parm[2], (long) parm[3], - (long) parm[4], (long) parm[5], (long) parm[6]); - - gdb_char_test = gdb_short_test = gdb_long_test = 0; - gdb_structp_test = (void *) 0; - gdb_structpp_test = (void *) 0; - memset ((char *) &gdb_struct1_test, 0, sizeof (gdb_struct1_test)); - memset ((char *) &gdb_struct2_test, 0, sizeof (gdb_struct2_test)); - local_static_sizeof = 0; - local_static = 0; - return ( (unsigned long) 0 ); -} - -static void gdb_asm_test (void) -{ -} - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i; - unsigned long myparms[10]; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - for (i = 0; i < sizeof (myparms) / sizeof (myparms[0]); i++) - myparms[i] = i; - - gdb_c_test (&myparms[0]); - - end (); - return 0; -} -
actions.c Property changes : Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -Id \ No newline at end of property Index: limits.c =================================================================== --- limits.c (revision 816) +++ limits.c (nonexistent) @@ -1,51 +0,0 @@ -/* - * Test program for tracing internal limits (number of tracepoints etc.) - */ - -int n = 6; - -int arr[64]; - -static void foo(int x) -{ -} - -static void bar(int y) -{ -} - -static void baz(int z) -{ -} - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) - arr[i] = i + 1; - - foo (1); - bar (2); - baz (3); - end (); - return 0; -} -
limits.c Property changes : Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -Id \ No newline at end of property Index: save-trace.exp =================================================================== --- save-trace.exp (revision 816) +++ save-trace.exp (nonexistent) @@ -1,172 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested save-trace.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_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 + 4] -set testline2 [expr $baseline + 5] -set testline3 [expr $baseline + 6] -set testline4 [expr $baseline + 7] -set testline5 [expr $baseline + 8] -set testline6 [expr $baseline + 9] - -# -# test save-trace command -# - -# setup a set of tracepoints to save - -gdb_delete_tracepoints - -foreach x { 1 2 3 4 5 6 } { - set testline [expr \$testline$x]; - set trcpt [gdb_gettpnum $testline]; - set trcpt$x $trcpt; - gdb_test "passcount $x" \ - "Setting tracepoint $trcpt.* to $x" \ - "10.x: set passcount for tracepoint $trcpt" - - gdb_trace_setactions "10.x: set actions for tracepoint $x" \ - "" \ - "collect q$x" "^$" \ - "while-stepping $x" "^$" \ - "collect q$x" "^$" \ - "end" "^$" -} - - -proc gdb_verify_tracepoints { testname } { - global gdb_prompt; - - set ws "\[\t \]+" - set nl "\[\r\n\]+" - set ourstate 1; - set result "pass"; - send_gdb "info tracepoints\n"; - gdb_expect 10 { - -re "y\[\t \]+0x\[0-9a-fA-F\]+\[\t \]+(\[0-9\]+)\[\t \]+(\[0-9\]+)\[\t \]+in gdb_recursion_test\[^\r\n\]+" { - if { $expect_out(1,string) != $expect_out(2,string) } { - #set result "fail"; - } - if { $expect_out(1,string) != $ourstate } { - set result "fail"; - } - incr ourstate; - exp_continue; - } - -re "$gdb_prompt $" { - if { $ourstate >= 6 } { - set result "pass"; - } else { - set result "fail"; - } - } - default { - set result "fail"; - } - } - $result $testname; - return $result; -} - -gdb_verify_tracepoints "10.x: verify trace setup"; - -# 10.1 Save current tracepoint definitions to a file - -remote_file host delete savetrace.tr -gdb_test "save-tracepoints savetrace.tr" \ - "Tracepoints saved to file 'savetrace.tr'." \ - "10.1: save tracepoint definitions" - -# 10.2 Read back tracepoint definitions - -gdb_delete_tracepoints -gdb_test "info tracepoints" "No tracepoints." "10.2: delete tracepoints" -gdb_test "source savetrace.tr" \ - "Tracepoint \[0-9\]+ at .*" \ - "10.2: read back saved tracepoints" -gdb_verify_tracepoints "10.2: verify recovered tracepoints"; -remote_file host delete savetrace.tr - -# 10.3 repeat with a path to the file - -set escapedfilename [string_to_regexp $objdir/savetrace.tr] -remote_file host delete $objdir/savetrace.tr -gdb_test "save-tracepoints $objdir/savetrace.tr" \ - "Tracepoints saved to file '${escapedfilename}'." \ - "10.3: save tracepoint definitions, full path" - -gdb_delete_tracepoints -gdb_test "info tracepoints" "No tracepoints." "10.3: delete tracepoints" -gdb_test "source $objdir/savetrace.tr" \ - "Tracepoint \[0-9\]+ at .*" \ - "10.4: read saved tracepoints, full path" -gdb_verify_tracepoints "10.3: verify recovered tracepoints, full path"; -remote_file host delete $objdir/savetrace.tr - -# 10.5 invalid filename -# [deferred -- not sure what a good invalid filename would be] - -# 10.6 save-trace (file already exists) -# [expect it to clobber the old one] - -# 10.7 help save-tracepoints - -gdb_test "help save-tracepoints" \ - "Save current tracepoint definitions as a script.*" \ - "10.7: help save-tracepoints" Index: collection.exp =================================================================== --- collection.exp (revision 816) +++ collection.exp (nonexistent) @@ -1,634 +0,0 @@ -# Copyright 1998, 2005, 2007, 2008 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 . - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -if [istarget "m68k-*-elf"] then { - pass "Test not supported on this target" - return; -} - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -set testfile "collection" -set srcfile ${testfile}.c -set binfile $objdir/$subdir/$testfile - -if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested collection.exp - return -1 -} - -# Tests: -# 1) $args -# 2) function args by name -# 3) $locs -# 4) function locals by name -# 5) $regs -# 6) registers by name ($sp, $fp?) -# 7) globals by name -# 8) expressions (lots of different kinds: local and global) - -set ws "\[\r\n\t \]+" -set cr "\[\r\n\]+" - -# -# Utility procs -# - -proc test_register { reg test_id } { - global cr - global gdb_prompt - - send_gdb "print $reg\n" - gdb_expect { - -re "\\$\[0-9\]+ = \[x0\]+$cr$gdb_prompt " { - fail "collect $test_id: collected $reg (zero)" - } - -re "\\$\[0-9\]+ = \[x0-9a-fA-F\]+$cr$gdb_prompt " { - pass "collect $test_id: collected $reg" - } - -re "\[Ee\]rror.*$gdb_prompt " { - fail "collect $test_id: collected $reg (error)" - } - timeout { - fail "collect $test_id: collected $reg (timeout)" - } - } -} - -proc run_trace_experiment { msg test_func } { - global gdb_prompt - gdb_run_cmd - gdb_expect { - -re ".*Breakpoint \[0-9\]+, begin .*$gdb_prompt $" { - } - -re ".*$gdb_prompt $" { - fail "collect $msg: advance to go" - } - timeout { - fail "collect $msg: advance to go (timeout)" - } - } - gdb_test "tstart" \ - "\[\r\n\]+" \ - "collect $msg: start trace experiment" - gdb_test "continue" \ - "Continuing.*Breakpoint \[0-9\]+, end.*" \ - "collect $msg: run trace experiment" - gdb_test "tstop" \ - "\[\r\n\]+" \ - "collect $msg: stop trace experiment" - gdb_test "tfind start" \ - "#0 $test_func .*" \ - "collect $msg: tfind test frame" -} - - -# -# Test procs -# - -proc gdb_collect_args_test { myargs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - gdb_test "trace args_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $myargs" "^$" - - # Begin the test. - run_trace_experiment $msg args_test_func - - gdb_test "print argc" \ - "\\$\[0-9\]+ = 1 '.001'$cr" \ - "collect $msg: collected arg char" - gdb_test "print argi" \ - "\\$\[0-9\]+ = 2$cr" \ - "collect $msg: collected arg int" - gdb_test "print argf" \ - "\\$\[0-9\]+ = 3.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected arg float" - gdb_test "print argd" \ - "\\$\[0-9\]+ = 4.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected arg double" - - # struct arg as one of several args (near end of list) - gdb_test "print argstruct.memberc" \ - "\\$\[0-9\]+ = 101 'e'$cr" \ - "collect $msg: collected arg struct member char" - gdb_test "print argstruct.memberi" \ - "\\$\[0-9\]+ = 102$cr" \ - "collect $msg: collected arg struct member int" - gdb_test "print argstruct.memberf" \ - "\\$\[0-9\]+ = 103.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member float" - gdb_test "print argstruct.memberd" \ - "\\$\[0-9\]+ = 104.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member double" - - # array arg as one of several args (near end of list) - gdb_test "print argarray\[0\]" \ - "\\$\[0-9\]+ = 111$cr" \ - "collect $msg: collected argarray #0" - gdb_test "print argarray\[1\]" \ - "\\$\[0-9\]+ = 112$cr" \ - "collect $msg: collected argarray #1" - gdb_test "print argarray\[2\]" \ - "\\$\[0-9\]+ = 113$cr" \ - "collect $msg: collected argarray #2" - gdb_test "print argarray\[3\]" \ - "\\$\[0-9\]+ = 114$cr" \ - "collect $msg: collected argarray #3" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - -proc gdb_collect_argstruct_test { myargs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - gdb_test "trace argstruct_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $myargs" "^$" - - # Begin the test. - run_trace_experiment $msg argstruct_test_func - - # struct argument as only argument - gdb_test "print argstruct.memberc" \ - "\\$\[0-9\]+ = 101 'e'$cr" \ - "collect $msg: collected arg struct member char" - gdb_test "print argstruct.memberi" \ - "\\$\[0-9\]+ = 102$cr" \ - "collect $msg: collected arg struct member int" - gdb_test "print argstruct.memberf" \ - "\\$\[0-9\]+ = 103.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member float" - gdb_test "print argstruct.memberd" \ - "\\$\[0-9\]+ = 104.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member double" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - - -proc gdb_collect_argarray_test { myargs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - gdb_test "trace argarray_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $myargs" "^$" - - # Begin the test. - run_trace_experiment $msg argarray_test_func - - # array arg as only argument - gdb_test "print argarray\[0\]" \ - "\\$\[0-9\]+ = 111$cr" \ - "collect $msg: collected argarray #0" - gdb_test "print argarray\[1\]" \ - "\\$\[0-9\]+ = 112$cr" \ - "collect $msg: collected argarray #1" - gdb_test "print argarray\[2\]" \ - "\\$\[0-9\]+ = 113$cr" \ - "collect $msg: collected argarray #2" - gdb_test "print argarray\[3\]" \ - "\\$\[0-9\]+ = 114$cr" \ - "collect $msg: collected argarray #3" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - - -proc gdb_collect_locals_test { func mylocs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Find the comment-identified line for setting this tracepoint. - set testline 0 - send_gdb "list $func, +30\n" - gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+ Set_Tracepoint_Here .*$gdb_prompt" { - set testline $expect_out(1,string) - pass "collect $msg: find tracepoint line" - } - -re ".*$gdb_prompt " { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - timeout { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - } - - gdb_test "trace $testline" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $mylocs" "^$" - - # Begin the test. - run_trace_experiment $msg $func - - gdb_test "print locc" \ - "\\$\[0-9\]+ = 11 '.\[a-z0-7\]+'$cr" \ - "collect $msg: collected local char" - gdb_test "print loci" \ - "\\$\[0-9\]+ = 12$cr" \ - "collect $msg: collected local int" - gdb_test "print locf" \ - "\\$\[0-9\]+ = 13.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected local float" - gdb_test "print locd" \ - "\\$\[0-9\]+ = 14.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected local double" - - gdb_test "print locst.memberc" \ - "\\$\[0-9\]+ = 15 '.017'$cr" \ - "collect $msg: collected local member char" - gdb_test "print locst.memberi" \ - "\\$\[0-9\]+ = 16$cr" \ - "collect $msg: collected local member int" - gdb_test "print locst.memberf" \ - "\\$\[0-9\]+ = 17.\[67\]\[0-9\]*$cr" \ - "collect $msg: collected local member float" - gdb_test "print locst.memberd" \ - "\\$\[0-9\]+ = 18.\[78\]\[0-9\]*$cr" \ - "collect $msg: collected local member double" - - gdb_test "print locar\[0\]" \ - "\\$\[0-9\]+ = 121$cr" \ - "collect $msg: collected locarray #0" - gdb_test "print locar\[1\]" \ - "\\$\[0-9\]+ = 122$cr" \ - "collect $msg: collected locarray #1" - gdb_test "print locar\[2\]" \ - "\\$\[0-9\]+ = 123$cr" \ - "collect $msg: collected locarray #2" - gdb_test "print locar\[3\]" \ - "\\$\[0-9\]+ = 124$cr" \ - "collect $msg: collected locarray #3" - - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - -proc gdb_collect_registers_test { myregs } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # We'll simply re-use the args_test_function for this test - gdb_test "trace args_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $myregs: set tracepoint" - gdb_trace_setactions "collect $myregs: define actions" \ - "" \ - "collect $myregs" "^$" - - # Begin the test. - run_trace_experiment $myregs args_test_func - - test_register "\$fp" $myregs - test_register "\$sp" $myregs - test_register "\$pc" $myregs - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $myregs: cease trace debugging" -} - -proc gdb_collect_expression_test { func expr val msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Find the comment-identified line for setting this tracepoint. - set testline 0 - send_gdb "list $func, +30\n" - gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+ Set_Tracepoint_Here .*$gdb_prompt" { - set testline $expect_out(1,string) - pass "collect $msg: find tracepoint line" - } - -re ".*$gdb_prompt " { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - timeout { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - } - - gdb_test "trace $testline" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $expr" "^$" - - # Begin the test. - run_trace_experiment $msg $func - - gdb_test "print $expr" \ - "\\$\[0-9\]+ = $val$cr" \ - "collect $msg: got expected value '$val'" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - -proc gdb_collect_globals_test { } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Find the comment-identified line for setting this tracepoint. - set testline 0 - send_gdb "list globals_test_func, +30\n" - gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+ Set_Tracepoint_Here .*$gdb_prompt" { - set testline $expect_out(1,string) - pass "collect globals: find tracepoint line" - } - -re ".*$gdb_prompt " { - fail "collect globals: find tracepoint line (skipping global test)" - return - } - timeout { - fail "collect globals: find tracepoint line (skipping global test)" - return - } - } - - gdb_test "trace $testline" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect globals: set tracepoint" - gdb_trace_setactions "collect globals: define actions" \ - "" \ - "collect globalc, globali, globalf, globald" "^$" \ - "collect globalstruct, globalp, globalarr" "^$" - - # Begin the test. - run_trace_experiment "globals" globals_test_func - - gdb_test "print globalc" \ - "\\$\[0-9\]+ = 71 'G'$cr" \ - "collect globals: collected global char" - gdb_test "print globali" \ - "\\$\[0-9\]+ = 72$cr" \ - "collect globals: collected global int" - gdb_test "print globalf" \ - "\\$\[0-9\]+ = 73.\[23\]\[0-9\]*$cr" \ - "collect globals: collected global float" - gdb_test "print globald" \ - "\\$\[0-9\]+ = 74.\[34\]\[0-9\]*$cr" \ - "collect globals: collected global double" - - gdb_test "print globalstruct.memberc" \ - "\\$\[0-9\]+ = 81 'Q'$cr" \ - "collect globals: collected struct char member" - gdb_test "print globalstruct.memberi" \ - "\\$\[0-9\]+ = 82$cr" \ - "collect globals: collected struct member int" - gdb_test "print globalstruct.memberf" \ - "\\$\[0-9\]+ = 83.\[23\]\[0-9\]*$cr" \ - "collect globals: collected struct member float" - gdb_test "print globalstruct.memberd" \ - "\\$\[0-9\]+ = 84.\[34\]\[0-9\]*$cr" \ - "collect globals: collected struct member double" - - gdb_test "print globalp == &globalstruct" \ - "\\$\[0-9\]+ = 1$cr" \ - "collect globals: collected global pointer" - - gdb_test "print globalarr\[1\]" \ - "\\$\[0-9\]+ = 1$cr" \ - "collect globals: collected global array element #1" - gdb_test "print globalarr\[2\]" \ - "\\$\[0-9\]+ = 2$cr" \ - "collect globals: collected global array element #2" - gdb_test "print globalarr\[3\]" \ - "\\$\[0-9\]+ = 3$cr" \ - "collect globals: collected global array element #3" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect globals: cease trace debugging" -} - -proc gdb_trace_collection_test { } { - global gdb_prompt; - - gdb_test "set width 0" "" "" - delete_breakpoints - - # 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" - return 1; - } - - gdb_test "break begin" "" "" - gdb_test "break end" "" "" - gdb_collect_args_test "\$args" \ - "args collectively" - gdb_collect_args_test "argc, argi, argf, argd, argstruct, argarray" \ - "args individually" - gdb_collect_argstruct_test "\$args" \ - "argstruct collectively" - gdb_collect_argstruct_test "argstruct" \ - "argstruct individually" - gdb_collect_argarray_test "\$args" \ - "argarray collectively" - gdb_collect_argarray_test "argarray" \ - "argarray individually" - gdb_collect_locals_test local_test_func "\$locals" \ - "auto locals collectively" - gdb_collect_locals_test local_test_func \ - "locc, loci, locf, locd, locst, locar" \ - "auto locals individually" - gdb_collect_locals_test reglocal_test_func "\$locals" \ - "register locals collectively" - gdb_collect_locals_test reglocal_test_func \ - "locc, loci, locf, locd, locst, locar" \ - "register locals individually" - gdb_collect_locals_test statlocal_test_func "\$locals" \ - "static locals collectively" - gdb_collect_locals_test statlocal_test_func \ - "locc, loci, locf, locd, locst, locar" \ - "static locals individually" - - gdb_collect_registers_test "\$regs" - gdb_collect_registers_test "\$fp, \$sp, \$pc" - gdb_collect_globals_test - - # - # Expression tests: - # - # *x (**x, ...) - # x.y (x.y.z, ...) - # x->y (x->y->z, ...) - # x[2] (x[2][3], ...) (const index) - # x[y] (x[y][z], ...) (index to be char, short, long, float, double) - # NOTE: - # We test the following operators by using them in an array index - # expression -- because the naked result of an operator is not really - # collected. To be sure the operator was evaluated correctly on the - # target, we have to actually use the result eg. in an array offset - # calculation. - # x[y + z] (tests addition: y and z various combos of types, sclasses) - # x[y - z] (tests subtraction) (ditto) - # x[y * z] (tests multiplication) (ditto) - # x[y / z] (tests division) (ditto) - # x[y % z] (tests modulo division) (ditto) - # x[y == z] (tests equality relation) (ditto) UNSUPPORTED - # x[y != z] (tests inequality relation) (ditto) UNSUPPORTED - # x[y > z] (tests greater-than relation) (ditto) UNSUPPORTED - # x[y < z] (tests less-than relation) (ditto) UNSUPPORTED - # x[y >= z] (tests greater-than-or-equal relation) (ditto) UNSUPPORTED - # x[y <= z] (tests less-than-or-equal relation) (ditto) UNSUPPORTED - # x[y && z] (tests logical and) (ditto) UNSUPPORTED - # x[y || z] (tests logical or) (ditto) UNSUPPORTED - # x[y & z] (tests binary and) (ditto) UNSUPPORTED - # x[y | z] (tests binary or) (ditto) UNSUPPORTED - # x[y ^ z] (tests binary xor) (ditto) UNSUPPORTED - # x[y ? z1 : z2] (tests ternary operator) (ditto) UNSUPPORTED - # x[y << z] (tests shift-left) (ditto) UNSUPPORTED - # x[y >> z] (tests shift-right) (ditto) UNSUPPORTED - # x[y = z] (tests assignment operator) (ditto) UNSUPPORTED - # x[++y] (tests pre-increment operator) (ditto) UNSUPPORTED - # x[--y] (tests pre-decrement operator) (ditto) UNSUPPORTED - # x[y++] (tests post-increment operator) (ditto) UNSUPPORTED - # x[y--] (tests post-decrement operator) (ditto) UNSUPPORTED - # x[+y] (tests unary plus) (ditto) - # x[-y] (tests unary minus) (ditto) - # x[!y] (tests logical not) (ditto) UNSUPPORTED - # x[~y] (tests binary not) (ditto) UNSUPPORTED - # x[(y, z)] (tests comma expression) (ditto) - # cast expr - # stack data - - gdb_collect_expression_test globals_test_func \ - "globalstruct.memberi" "82" "a.b" - gdb_collect_expression_test globals_test_func \ - "globalp->memberc" "81 'Q'" "a->b" - gdb_collect_expression_test globals_test_func \ - "globalarr\[2\]" "2" "a\[2\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3\]" "3" "a\[b\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3 + l2\]" "5" "a\[b + c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3 - l2\]" "1" "a\[b - c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3 * l2\]" "6" "a\[b * c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l6 / l3\]" "2" "a\[b / c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l7 % l3\]" "1" "a\[b % c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[+l1\]" "1" "a\[+b\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[-lminus\]" "2" "a\[-b\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[\(l6, l7\)\]" "7" "a\[\(b, c\)\]" - -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $binfile - -if [target_info exists gdb_stub] { - gdb_step_for_stub; -} - -# Body of test encased in a proc so we can return prematurely. -gdb_trace_collection_test - -# Finished! -gdb_test "tfind none" "" "" - - - Index: while-stepping.exp =================================================================== --- while-stepping.exp (revision 816) +++ while-stepping.exp (nonexistent) @@ -1,116 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} 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-stepping.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# -# test while-stepping command -# - -gdb_delete_tracepoints -set trcpt1 [gdb_gettpnum gdb_c_test] -if { $trcpt1 <= 0 } then { - fail "Could not find gdb_c_test function" - return; -} - -# 5.12 basic while-stepping command (collect regs) - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+0\[\t \]+.*in gdb_c_test.*" \ - "5.12: set a tracepoint, stepcount is zero" - -set stepcount 12 - -gdb_trace_setactions "5.12: set stepcount to $stepcount" \ - "" \ - "while-stepping $stepcount" "" \ - "collect \$regs" "^$" \ - "end" "" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+$stepcount\[\t \]+.*in gdb_c_test.*" \ - "5.12: confirm stepcount set to $stepcount" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.* -.*while-stepping $stepcount.*" \ - "5.12: info trace shows \"while-stepping\"" - - -# 5.13 step out of context while collecting local variable -# [deferred to dynamic test section] - -proc while_stepping_bogus_arg { bogus msgstring } { - global gdb_prompt; - - gdb_trace_setactions "$msgstring" \ - "" \ - "while-stepping $bogus" "\[Ee\]rror|\[Ww\]arning" -} - -# 5.14 while-stepping (no argument) - -while_stepping_bogus_arg "" "5.14: while-stepping null stepcount" - -# 5.15 while-stepping (zero stepcount) - -while_stepping_bogus_arg "0" "5.15: while-stepping rejects zero stepcount" - -# 5.16 while-stepping without collecting anything -gdb_trace_setactions "5.16: step without collecting anything" \ - "" \ - "while-stepping $stepcount" "^$" \ - "end" "" - -gdb_test "info tracepoints" \ - ".*$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.*" \ - "5.16: confirm actions, step without collecting anything" - Index: while-dyn.exp =================================================================== --- while-dyn.exp (revision 816) +++ while-dyn.exp (nonexistent) @@ -1,125 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 $" { - 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 -} -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" - 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 " \ - "" \ - "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" "" "" Index: actions.exp =================================================================== --- actions.exp (revision 816) +++ actions.exp (nonexistent) @@ -1,207 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 { - 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 nowarnings}] != "" } { - untested actions.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_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_tracepoints -set 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 tracepoint - -send_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 earlier - -gdb_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 context - -gdb_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 number - -gdb_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" - Index: limits.exp =================================================================== --- limits.exp (revision 816) +++ limits.exp (nonexistent) @@ -1,316 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -if [istarget "m68k-*-elf"] then { - pass "Test not supported on this target" - return; -} - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -set testfile "limits" -set srcfile ${testfile}.c -set binfile $objdir/$subdir/$testfile - -if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested limits.exp - return -1 -} - -# Tests: -# 1) Meet and exceed artificial limit on number of tracepoints -# 2) Meet and exceed artificial limit on number of memranges -# 3) Meet and exceed artificial limit on bytes of bytecode data -# [NOTE: number four is moved out into its own separate test module.] -# 4) Meet and exceed artificial limit on bytes of trace buffer storage -# (circular and non-circular modes). However note that a more -# thorough test of the circular mode can be made separately. - -set cr "\[\r\n\]+" - -proc gdb_tracepoint_limit_test { } { - global gdb_prompt - global cr - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Set three tracepoints - gdb_test "trace foo" \ - "Tracepoint \[0-9\]+ at .*" \ - "tracepoint limit test: set first tracepoint" - - gdb_test "trace bar" \ - "Tracepoint \[0-9\]+ at .*" \ - "tracepoint limit test: set second tracepoint" - - gdb_test "trace baz" \ - "Tracepoint \[0-9\]+ at .*" \ - "tracepoint limit test: set third tracepoint" - - # Set secret artificial tracepoint limit to four - gdb_test "maint packet QTLimit:tp:4" \ - "received: .OK." \ - "tracepoint limit test: set limit to four" - - # Now sending three tracepoints should succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "tracepoint limit test: send fewer than limit" - } - default { - fail "tracepoint limit test: send fewer than limit" - } - } - - # Set secret artificial tracepoint limit to three - gdb_test "maint packet QTLimit:tp:3" \ - "received: .OK." \ - "tracepoint limit test: set limit to three" - - # Now sending three tracepoints should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "tracepoint limit test: send equal to limit" - } - default { - fail "tracepoint limit test: send equal to limit" - } - } - - # Set secret artificial tracepoint limit to two - gdb_test "maint packet QTLimit:tp:2" \ - "received: .OK." \ - "tracepoint limit test: set limit to two" - - # Now sending three tracepoints should fail. - gdb_test "tstart" \ - ".*\[Ee\]rror.*" \ - "tracepoint limit test: send more than limit" - - # Clean up: - gdb_test "tstop" "" "" - gdb_test "maint packet QTLimit:tp:FFFFFFFF" "" "" -} - -proc gdb_memrange_limit_test { } { - global gdb_prompt - global cr - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Set three tracepoints, and make 'em collect memranges - gdb_test "trace foo" \ - "Tracepoint \[0-9\]+ at .*" \ - "memrange limit test: set first tracepoint" - - gdb_trace_setactions "memrange limit test: set first actions" \ - "" \ - "collect \$arg" "^$" - - gdb_test "trace bar" \ - "Tracepoint \[0-9\]+ at .*" \ - "memrange limit test: set second tracepoint" - - gdb_trace_setactions "memrange limit test: set second actions" \ - "" \ - "collect \$arg" "^$" - - gdb_test "trace baz" \ - "Tracepoint \[0-9\]+ at .*" \ - "memrange limit test: set third tracepoint" - - gdb_trace_setactions "memrange limit test: set third actions" \ - "" \ - "collect \$arg" "^$" - - # Set secret artificial memrange limit to four - gdb_test "maint packet QTLimit:memrange:4" \ - "received: .OK." \ - "memrange limit test: set limit to four" - - # Now sending three memranges should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "memrange limit test: send fewer than limit" - } - default { - fail "memrange limit test: send fewer than limit" - } - } - - # Set secret artificial memrange limit to three - gdb_test "maint packet QTLimit:memrange:3" \ - "received: .OK." \ - "memrange limit test: set limit to three" - - # Now sending three memranges should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "memrange limit test: send equal to limit" - } - default { - fail "memrange limit test: send equal to limit" - } - } - - # Set secret artificial memrange limit to two - gdb_test "maint packet QTLimit:memrange:2" \ - "received: .OK." \ - "memrange limit test: set limit to two" - - # Now sending three memranges should fail. - gdb_test "tstart" \ - ".*\[Ee\]rror.*" \ - "memrange limit test: send more than limit" - - # Clean up: - gdb_test "tstop" "" "" - gdb_test "maint packet QTLimit:memrange:FFFFFFFF" "" "" -} - - -proc gdb_bytecode_limit_test { } { - global gdb_prompt - global cr - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Set three tracepoints - gdb_test "trace foo" \ - "Tracepoint \[0-9\]+ at .*" \ - "bytecode limit test: set first tracepoint" - - gdb_trace_setactions "bytecode limit test: set first actions" \ - "" \ - "collect x + n" "^$" - - gdb_test "trace bar" \ - "Tracepoint \[0-9\]+ at .*" \ - "bytecode limit test: set second tracepoint" - - gdb_trace_setactions "bytecode limit test: set second actions" \ - "" \ - "collect y + n" "^$" - - gdb_test "trace baz" \ - "Tracepoint \[0-9\]+ at .*" \ - "bytecode limit test: set third tracepoint" - - gdb_trace_setactions "bytecode limit test: set third actions" \ - "" \ - "collect z + n" "^$" - - # Set secret artificial bytecode limit to a large number - gdb_test "maint packet QTLimit:bytecode:400" \ - "received: .OK." \ - "bytecode limit test: set limit to large" - - # Now sending three bytecodes should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "bytecode limit test: send fewer than limit" - } - default { - fail "bytecode limit test: send fewer than limit" - } - } - - # Set secret artificial bytecode limit to a small number - gdb_test "maint packet QTLimit:bytecode:40" \ - "received: .OK." \ - "bytecode limit test: set limit to small" - - # Now sending three bytecodes should fail. - gdb_test "tstart" \ - ".*\[Ee\]rror.*" \ - "bytecode limit test: send more than limit" - - - # Clean up: - gdb_test "tstop" "" "" - gdb_test "maint packet QTLimit:bytecode:FFFFFFFF" "" "" -} - -proc gdb_trace_limits_tests { } { - global gdb_prompt - - # 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" - return 1; - } - - if [gdb_test "maint packet QTLimit:tp:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - - if [gdb_test "maint packet QTLimit:memrange:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - - if [gdb_test "maint packet QTLimit:bytecode:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return; - } - - gdb_tracepoint_limit_test - gdb_memrange_limit_test - gdb_bytecode_limit_test -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $binfile - -if [target_info exists gdb_stub] { - gdb_step_for_stub; -} -# Body of test encased in a proc so we can return prematurely. -gdb_trace_limits_tests Index: passc-dyn.exp =================================================================== --- passc-dyn.exp (revision 816) +++ passc-dyn.exp (nonexistent) @@ -1,188 +0,0 @@ -# Copyright 1998, 2005, 2007, 2008 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 . - -# 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 srcfile gdb_c_test.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-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - untested passc-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 passc-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" - return 1; - -} - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - - -# -# test passcount dynamically (live target) -# - -set baseline [gdb_find_recursion_test_baseline $srcfile]; - -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) - -set testline2 [expr $baseline + 4] -set testline3 [expr $baseline + 5] -set testline4 [expr $baseline + 6] - -# -# test passcount command semantics (live test) -# - -## Set three tracepoints with three different passcounts. -## Verify that the experiment stops after the one with the -## lowest passcount is hit. - -gdb_delete_tracepoints -set tdp2 [gdb_gettpnum "$testline2"] -set tdp3 [gdb_gettpnum "$testline3"] -set tdp4 [gdb_gettpnum "$testline4"] -if { $tdp2 <= 0 || $tdp3 <= 0 || $tdp4 <= 0 } then { - fail "setting tracepoints" - return; -} - -gdb_test "passcount 4 $tdp2" "Setting tracepoint $tdp2's passcount to 4" \ - "4.5: set passcount for tracepoint $tdp2" -gdb_test "passcount 2 $tdp3" "Setting tracepoint $tdp3's passcount to 2" \ - "4.5: set passcount for tracepoint $tdp3" -gdb_test "passcount 3 $tdp4" "Setting tracepoint $tdp4's passcount to 3" \ - "4.5: set passcount for tracepoint $tdp4" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,1,2,3,4,5,6" - sleep 5 - gdb_emclaptop_command "85,7,8,9,A,B,C" - sleep 5 - gdb_emclaptop_command "85,D,E,F,10,11,12" - sleep 5 - # gdb_test "tstop" - ## - ## Note! Must NOT give the tstop command, because the passcount - ## has already stopped the experiment. You would not - ## think this would be an error, but in EMC's mind it is... - ## -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" - gdb_test "tstop" "" "" -} - -gdb_test "tfind none" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x -1 x" ""] { - untested passc-dyn.exp - return -1 -} - -gdb_test "tfind tracepoint $tdp2" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 0 x" ""] { - untested passc-dyn.exp - return -1 -} - -gdb_test "tfind tracepoint $tdp3" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 1 x" ""] { - untested passc-dyn.exp - return -1 -} - -gdb_test "tfind tracepoint $tdp4" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 2 x" ""] { - untested passc-dyn.exp - return -1 -} - -gdb_test "tfind tracepoint $tdp2" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 3 x" ""] { - untested passc-dyn.exp - return -1 -} - -gdb_test "tfind tracepoint $tdp3" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 4 x" ""] { - untested passc-dyn.exp - return -1 -} - -## We should now be at the last frame, because this frame's passcount -## should have caused collection to stop. If we do a tfind now, -## it should fail. - -gdb_test "tfind" "failed to find.*" "4.5: dynamic passcount test" - -# Finished! -gdb_test "tfind none" "" "" - Index: tfind.exp =================================================================== --- tfind.exp (revision 816) +++ tfind.exp (nonexistent) @@ -1,407 +0,0 @@ -# Copyright 1998, 2002, 2005, 2007, 2008 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 . - -# 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 srcfile gdb_c_test.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-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - untested tfind.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 tfind.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" - return 1; - -} - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# 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 + 1] -set testline2 [expr $baseline + 5] -set testline3 [expr $baseline + 6] -set testline4 [expr $baseline + 7] -set testline5 [expr $baseline + 8] - -# -# test tfind command -# - -gdb_delete_tracepoints -set tdp1 [gdb_gettpnum "\*gdb_recursion_test"] -set tdp2 [gdb_gettpnum $testline2] -set tdp3 [gdb_gettpnum $testline3] -set tdp4 [gdb_gettpnum $testline4] -set tdp5 [gdb_gettpnum $testline5] -if { $tdp1 <= 0 || $tdp2 <= 0 || $tdp3 <= 0 || \ - $tdp4 <= 0 || $tdp5 <= 0 } then { - fail "setting tracepoints" - return; -} - -# 6.1 test tstart command -send_gdb "tstart\n" -gdb_expect { - -re "Trace can only be run on remote targets.*$gdb_prompt $" { - fail "6.1: tstart (not connected to remote?)" - return; - } - -re "Target does not support this command.*$gdb_prompt $" { - fail "6.1: tstart (connected to wrong target?)" - return; - } - -re "Target returns error code.*$gdb_prompt $" { - fail "6.1: tstart (connected to wrong target?)" - return; - } - -re "$gdb_prompt $" { - pass "6.1: tstart" - } - default { - fail "6.1: tstart (default)" - return; - } -} - -# test tstatus (when trace on) -gdb_test "tstatus" "\[Tt\]race is running.*" "test tstatus on" - -# 6.2 test help tstart -gdb_test "help tstart" "Start trace data collection." "6.2: help tstart" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,1,2,3,4,5,6" - sleep 5 - - gdb_emclaptop_command "85,7,8,9,A,B,C" - sleep 5 -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -# 7.1 test tstop command -send_gdb "tstop\n" -gdb_expect { - -re "Trace can only be run on remote targets.*$gdb_prompt $" { - fail "7.1: tstop (not connected to remote?)" - return; - } - -re "Target does not support this command.*$gdb_prompt $" { - fail "7.1: tstop (connected to wrong target?)" - return; - } - -re "Target returns error code.*$gdb_prompt $" { - fail "7.1: tstop (connected to wrong target?)" - return; - } - -re "$gdb_prompt $" { - pass "7.1: tstop" - } - default { - fail "7.1: tstop (default)" - return; - } -} - -# 7.2 test help tstop -gdb_test "help tstop" "Stop trace data collection." "7.2: help tstop" - -# test tstatus (when trace off) -gdb_test "tstatus" "\[Tt\]race.* not running.*" "test tstatus off" - -## record starting PC -set save_pc [gdb_readexpr "(unsigned long) \$pc"]; -if { $save_pc == -1 } then { - fail "could not read PC" - return; -} - -# 8.7 tfind start -## check $trace_frame == 0 -gdb_tfind_test "8.7: tfind start command" "start" "0"; -## check $pc != startPC -gdb_test "printf \"x \%d x\\n\", \$pc != $save_pc" \ - "x 1 x" \ - "8.7b: tfind start" - -# 8.8 tfind none -## check $trace_frame == -1 -gdb_tfind_test "8.8: tfind none" "none" "-1"; -## check $pc == startPC -gdb_test "printf \"x \%d x\\n\", \$pc == $save_pc" \ - "x 1 x" \ - "8.8b: tfind none (restores non-trace PC)" - -# 8.9 tfind end -## check $trace_frame == -1 -gdb_tfind_test "8.9: tfind end, selects no frame" "end" "-1"; -## check $pc == startPC -gdb_test "printf \"x \%d x\\n\", \$pc == $save_pc" \ - "x 1 x" \ - "8.9b: tfind end (restores non-tracing PC)" - -# 8.1 tfind n -## check $trace_frame == n -gdb_tfind_test "8.1: tfind 1" "1" "1" -## check $trace_line corresponds to tracepoint for frame n -gdb_test "print \$trace_line" "$testline2" "8.1b: tfind 1 (correct line)" - -# 8.28 tfind invalid n (big number) -## check "not found" error -## check $trace_frame != n -gdb_test "tfind 32767" \ - "failed to find.*" \ - "8.28: tfind command rejects invalid frame number" - -gdb_test "printf \"x \%d x\\n\", \$trace_frame == 32767" \ - "x 0 x" \ - "8.28: tfind rejected bad input (32767)" - -# 8.31 tfind negative n -## check error -gdb_test "tfind -3" "invalid input.*" "8.31: tfind rejects negative input" -## check $trace_frame != -n -gdb_test "printf \"x \%d x\\n\", \$trace_frame == -3" "x 0 x" \ - "8.31: tfind rejected negative input (-3)" - -# 8.10 tfind -## check $trace_frame += 1 - -gdb_tfind_test "8.10: tfind start" "start" "0"; -gdb_test "print \$trace_line" "$baseline" \ - "8.10: tfind 0 (correct line $baseline)" -gdb_tfind_test "8.10: tfind noargument 1" "" "1"; -gdb_test "print \$trace_line" "$testline2" \ - "8.10: tfind 1 (correct line $testline2)" -gdb_tfind_test "8.10: tfind noargument 2" "" "2"; -gdb_test "print \$trace_line" "$testline3" \ - "8.10: tfind 2 (correct line $testline3)" -gdb_tfind_test "8.10: tfind noargument 3" "" "3"; -gdb_test "print \$trace_line" "$testline4" \ - "8.10: tfind 3 (correct line $testline4)" - -gdb_tfind_test "8.11: tfind 3" "3" "3"; -gdb_test "print \$trace_line" "$testline4" \ - "8.11: tfind 3 (correct line $testline4)" -gdb_tfind_test "8.11: tfind backward 2" "-" "2"; -gdb_test "print \$trace_line" "$testline3" \ - "8.11: tfind 2 (correct line $testline3)" -gdb_tfind_test "8.11: tfind backward 1" "-" "1"; -gdb_test "print \$trace_line" "$testline2" \ - "8.11: tfind 1 (correct line $testline2)" -gdb_tfind_test "8.11: tfind backward 0" "-" "0"; -gdb_test "print \$trace_line" "$baseline" \ - "8.11: tfind 0 (correct line $baseline)" - -gdb_tfind_test "8.12: tfind none" "none" "-1"; -gdb_tfind_test "8.12: tfind tracepoint " "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2"; -gdb_test "print \$trace_line" "$testline2" \ - "8.12: tfind tracepoint (line $testline2)" - -gdb_tfind_test "8.25: tfind none" "none" "-1"; -gdb_test "tfind tracepoint 0" "failed to find.*" \ - "8.25: tfind tracepoint rejects zero" -gdb_test "tfind tracepoint 32767" "failed to find.*" \ - "8.25: tfind tracepoint rejects nonexistant tracepoint (32767)" -gdb_test "tfind tracepoint -1" "failed to find.*" \ - "8.25: tfind tracepoint rejects nonexistant tracepoint (-1)" - -# 8.37 tfind tracepoint n where n no longer exists (but used to) -gdb_test "delete trace $tdp2" "" "" -gdb_tfind_test "8.37: tfind none" "none" "-1"; -gdb_tfind_test "8.37: tfind deleted tracepoint" \ - "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2"; -gdb_test "print \$trace_line" "$testline2" \ - "8.37: tfind deleted tracepoint (line $testline2)" - -# 8.13 tfind tracepoint -## check $tracepoint same before and after, $trace_frame changed - -gdb_tfind_test "8.13: tfind none" "none" "-1"; -gdb_tfind_test "8.13: tracepoint $tdp1" "tracepoint $tdp1" \ - "\$tracepoint" "$tdp1"; -gdb_test "print \$trace_line" "$baseline" \ - "8.13: tfind tracepoint $tdp1 (line $baseline)" -gdb_test "set \$save_frame = \$trace_frame" "" "" -gdb_tfind_test "8.13: tracepoint " "tracepoint" \ - "\$tracepoint" "$tdp1"; -gdb_test "printf \"x \%d x\\n\", \$trace_frame == \$save_frame" \ - "x 0 x" \ - "8.13: tracepoint , tracepoint number unchanged" - -# 1.12 set tracepoint in prologue -# -# tdp1 was set at *gdb_recursion_test (ie. the hard address of the -# function, before the prologue). Test to see that it succeeded. -# Current pc should be equal to the address of the function. - -gdb_test "printf \"x \%d x\\n\", \$pc == gdb_recursion_test" \ - "x 1 x" \ - "1.12: set tracepoint in prologue" - -# 8.14 tfind pc x -## check pc == x, $trace_frame != -1 -gdb_tfind_test "8.14: tfind 3" "3" "3" -gdb_test "print \$trace_line" "$testline4" \ - "8.14: tfind 3 (line $testline4)" - -gdb_test "set \$test_pc = \$pc" "" "" -gdb_tfind_test "8.14: tfind none" "none" "-1" -gdb_tfind_test "8.14: tfind pc" "pc \$test_pc" "\$trace_frame != -1" "1"; -gdb_test "print \$trace_line" "$testline4" \ - "8.14: tfind pc x (line $testline4)" -gdb_test "printf \"x \%d x\\n\", \$pc == \$test_pc" \ - "x 1 x" \ - "8.14: tfind pc x" - -# 8.15 tfind pc -## check pc same before and after, $trace_frame changed -gdb_tfind_test "8.15: tfind 3" "3" "3" -gdb_test "print \$trace_line" "$testline4" \ - "8.15: tfind 3 (line $testline4)" -gdb_test "set \$test_pc = \$pc" "" "" -gdb_tfind_test "8.15: tfind pc" "pc" "\$pc == \$test_pc" "1" -gdb_test "print \$trace_line" "$testline4" \ - "8.15: tfind pc (line $testline4)" -gdb_test "printf \"x \%d x\\n\", \$trace_frame != 3" "x 1 x" \ - "8.15: trace frame didn't change" - -# 8.26 tfind pc invalid x -## check error, pc != x (trace_frame unchanged?) -gdb_tfind_test "8.26: tfind start" "start" "0" -gdb_test "tfind pc 0" "failed to find.*" "8.26: tfind pc zero" -gdb_test "tfind pc -1" "failed to find.*" "8.26: tfind pc -1" - -# 8.16 tfind line n -## check #trace_frame != -1, $trace_line == n -gdb_tfind_test "8.16: tfind none" "none" "-1" -gdb_tfind_test "8.16: tfind line $testline3" \ - "line $testline3" \ - "\$trace_line == $testline3" "1" - -# 8.17 tfind line (# 8.19, 8.20) -## check $trace_line changed, no error, pc changed, frame changed, tdp changed -gdb_tfind_test "8.17: tfind none" "none" "-1" -gdb_tfind_test "8.17: tfind line $testline3" "line $testline3" "\$trace_line == $testline3" "1" -gdb_tfind_test "8.17: tfind line " "line" "\$trace_line != $testline3" "1" - -# 8.36 tfind and disassembly -gdb_tfind_test "8.36: tfind start" "start" "0" -set timeout 60 -send_gdb "disassemble gdb_c_test\n" -# look for disassembly of function label -gdb_expect { - -re ":.*$gdb_prompt $" { pass "8.36: trace disassembly" } - -re ".*$gdb_prompt $" { fail "8.36: trace disassembly" } - timeout { fail "8.36: trace disassembly (timeout)" } -} - -gdb_test "tfind line 0" \ - "out of range.*|failed to find.*" \ - "8.18: tfind line 0"; -gdb_test "tfind line 32767" \ - "out of range.*|failed to find.*" \ - "8.27: tfind line 32767"; -gdb_test "tfind line NoSuChFiLe.c:$baseline" \ - "No source file named.*" \ - "8.27: tfind line in bad source file"; - -# 8.32 tfind invalid subcommand (tfind foo) -## check error -gdb_test "tfind NoSuChOpTiOn 21" \ - "No symbol.*|\[Ww\]arning.*|\[Ee\]rror.*" \ - "8.32: tfind with bad subcommand" - -# 8.38 test help tfind -gdb_test "help tfind" "Select a trace frame.*" \ - "8.38: help tfind" -gdb_test "help tfind pc" "Select a trace frame by PC.*" \ - "8.38: help tfind PC" -gdb_test "help tfind end" "Synonym for 'none'.*" \ - "8.38: help tfind end" -gdb_test "help tfind none" "De-select any trace frame.*" \ - "8.38: help tfind none" -gdb_test "help tfind line" "Select a trace frame by source line.*" \ - "8.38: help tfind line" -gdb_test "help tfind start" "Select the first trace frame.*" \ - "8.38: help tfind start" -gdb_test "help tfind range" "Select a trace frame whose PC is in.*" \ - "8.38: help tfind range" -gdb_test "help tfind trace" "Select a trace frame by tracepoint number.*" \ - "8.38: help tfind tracepoint" - -# Finished! -gdb_tfind_test "8.17: tfind none" "none" "-1" Index: circ.c =================================================================== --- circ.c (revision 816) +++ circ.c (nonexistent) @@ -1,90 +0,0 @@ -/* - * Test program for tracing; circular buffer - */ - -int n = 6; - -int testload[13]; - -static void func0(void) -{ -} - -static void func1(void) -{ -} - -static void func2(void) -{ -} - -static void func3(void) -{ -} - -static void func4(void) -{ -} - -static void func5(void) -{ -} - -static void func6(void) -{ -} - -static void func7(void) -{ -} - -static void func8(void) -{ -} - -static void func9(void) -{ -} - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - for (i = 0; i < sizeof(testload) / sizeof(testload[0]); i++) - testload[i] = i + 1; - - func0 (); - func1 (); - func2 (); - func3 (); - func4 (); - func5(); - func6 (); - func7 (); - func8 (); - func9 (); - - end (); - -#ifdef usestubs - breakpoint (); -#endif - return 0; -}
circ.c Property changes : Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -Id \ No newline at end of property Index: packetlen.exp =================================================================== --- packetlen.exp (revision 816) +++ packetlen.exp (nonexistent) @@ -1,101 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 srcfile gdb_c_test.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-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - untested packetlen.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 packetlen.exp - return -1 - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# -# Test collecting a whole bunch of stuff at a single tracepoint. -# The test is whether this crashes GDB. -# - -gdb_delete_tracepoints -gdb_test "trace gdb_c_test" "" "" -gdb_trace_setactions "setup collect actions" \ - "" \ - "collect parm\[0\], parm\[1\], parm\[2\], parm\[3\]" "^$" \ - "collect parm\[4\], parm\[5\], parm\[6\], parm\[7\]" "^$" \ - "collect p, local_reg, local_static, local_static_sizeof" "^$" \ - "collect local_long, stack_ptr, end_of_stack" "^$" \ - "collect gdb_char_test, gdb_short_test, gdb_long_test" "^$" \ - "collect gdb_arr_test, gdb_struct1_test, gdb_struct2_test" "^$" \ - "collect gdb_structp_test, gdb_structpp_test, gdb_union1_test" "^$" \ - "end" "" - -gdb_test "tstart" "" "survive the long packet send" -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" "" "confirm: survived the long packet send" - Index: infotrace.exp =================================================================== --- infotrace.exp (revision 816) +++ infotrace.exp (nonexistent) @@ -1,99 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested infotrace.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# -# test "info tracepoints" command -# - -gdb_delete_tracepoints -set c_test_num [gdb_gettpnum gdb_c_test]; -set asm_test_num [gdb_gettpnum gdb_asm_test]; -if { $c_test_num <= 0 || $asm_test_num <= 0 } then { - fail "setting tracepoints" - return; -} - -# 2.1 info tracepoints (all) -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$c_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*$asm_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*" \ - "2.1: info tracepoints (all)" - -# 2.2 info tracepoint (specific) -gdb_test "info tracepoint $c_test_num" \ - "$c_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*" \ - "2.2a: info tracepoint $c_test_num (gdb_c_test)" - -gdb_test "info tracepoint $asm_test_num" \ - "$asm_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*" \ - "2.2b: info tracepoint $asm_test_num (gdb_asm_test)" - -# 2.3 info tracepoint (invalid tracepoint number) -gdb_test "info tracepoint [expr $c_test_num + $asm_test_num]" \ - "No tracepoint number [expr $c_test_num + $asm_test_num]." \ - "2.3: info tracepoint (invalid tracepoint number)" - -# 2.4 info tracepoints (list of numbers) -send_gdb "info tracepoints $c_test_num $asm_test_num \n" -gdb_expect { - -re "Num Enb .*$gdb_prompt $" { - fail "2.4: info trace rejects multiple tracepoint numbers" - } - -re ".*$gdb_prompt $" { - pass "2.4: info trace rejects multiple tracepoint numbers" - } -} - -# 2.5 help info trace -gdb_test "help info tracepoints" \ - "Status of tracepoints, or tracepoint number NUMBER.*" \ - "2.5: help info tracepoints" - Index: report.exp =================================================================== --- report.exp (revision 816) +++ report.exp (nonexistent) @@ -1,424 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 srcfile gdb_c_test.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-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - untested report.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 report.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" - return 1; - -} - -set cr "\[\r\n\]+" - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# -# test general reporting of trace experiment results -# - -set testline1 0 -set testline2 0 -set testline3 0 -set testline4 0 -set testline5 0 -set testline6 0 - -set arg1 1 -set arg2 2 -set arg3 3 -set arg4 4 -set arg5 5 -set arg6 6 - -set gdb_recursion_test_baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $gdb_recursion_test_baseline == -1 } { - fail "Could not find gdb_recursion_test function" - return; -} - -send_gdb "list $gdb_recursion_test_baseline, +12\n" -gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 1 " { - set testline1 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 2 " { - set testline2 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 3 " { - set testline3 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 4 " { - set testline4 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 5 " { - set testline5 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 6 " { - set testline6 $expect_out(1,string) - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($testline1 == 0) || ($testline2 == 0) || ($testline3 == 0) || ($testline4 == 0) || ($testline5 == 0) || ($testline6 == 0) } { - untested report.exp - return -1 -all tests in this module will fail." - } - } - default { - untested report.exp - return -1 -all tests in this module will fail." - } -} - -# -# Setup trace experiment. This will involve: -# 1) a tracepoint where nothing is collected -# 2) a tracepoint where only regs are collected -# 3) a tracepoint where only args are collected -# 4) a tracepoint where only locals are collected -# 5) a tracepoint where some amount of stack memory is collected. -# 6) a tracepoint where some expressions are collected. -# - -gdb_delete_tracepoints -set tdp1 [gdb_gettpnum $testline1] -set tdp2 [gdb_gettpnum $testline2] -set tdp3 [gdb_gettpnum $testline3] -set tdp4 [gdb_gettpnum $testline4] -set tdp5 [gdb_gettpnum $testline5] -set tdp6 [gdb_gettpnum $testline6] - -if { $tdp1 <= 0 || $tdp2 <= 0 || $tdp3 <= 0 || \ - $tdp4 <= 0 || $tdp5 <= 0 || $tdp6 <= 0 } then { - fail "setting tracepoints failed" - return; -} - -gdb_trace_setactions "9.x: setup TP to collect regs" \ - "$tdp2" \ - "collect \$regs" "^$" - - -gdb_trace_setactions "9.x: setup TP to collect args" \ - "$tdp3" \ - "collect \$args" "^$" - -gdb_trace_setactions "9.x: setup TP to collect locals" \ - "$tdp4" \ - "collect \$locs" "^$" - -gdb_trace_setactions "9.x: setup TP to collect stack memory" \ - "$tdp5" \ - "collect \$fp, \*\(void \*\*\) \$sp @ 64" "^$" - -gdb_trace_setactions "9.x: setup TP to collect expressions" \ - "$tdp6" \ - "collect gdb_char_test, gdb_short_test, gdb_long_test" "^$" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,$arg1,$arg2,$arg3,$arg4,$arg5,$arg6" - sleep 5 - -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -gdb_test "tstop" "" "" - -# -# 9.1 test the tdump command -# - -set timeout 60 - -gdb_tfind_test "9.1: init: make sure not debugging any trace frame" "none" "-1" - -gdb_tfind_test "9.1: find frame for TP $tdp1" "tracepoint $tdp1" \ - "\$tracepoint" "$tdp1" - -# Nothing was collected at tdp1, so this tdump should be empty. -gdb_test "tdump" \ - "Data collected at tracepoint $tdp1, trace frame $decimal:" \ - "9.1: tdump, nothing collected" - -gdb_tfind_test "9.1: find frame for TP $tdp2" "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2" - -# regs were collected at tdp2. -# How to match for the output of "info registers" on an unknown architecture? -# For now, assume that every architecture has a register called "pc". -gdb_test "tdump" \ - "\[\r\n\]pc .*" \ - "9.1: tdump, regs collected" - -gdb_tfind_test "9.1: find frame for TP $tdp3" "tracepoint $tdp3" \ - "\$tracepoint" "$tdp3" - -# args were collected at tdp3 -gdb_test "tdump" \ - "depth = 3.*q1 = 2.*q2 = 2.*q3 = 3.*q4 = 4.*q5 = 5.*q6 = 6" \ - "9.1: tdump, args collected" - -gdb_tfind_test "9.1: find frame for TP $tdp4" "tracepoint $tdp4" \ - "\$tracepoint" "$tdp4" - -# locals were collected at tdp4 -gdb_test "tdump" \ - "q = 1" \ - "9.1: tdump, locals collected" - -gdb_tfind_test "9.1: find frame for TP $tdp5" "tracepoint $tdp5" \ - "\$tracepoint" "$tdp5" - -# stack was collected at tdp5, plus the frame pointer -gdb_test "tdump" \ - ".fp = .*sp @ 64 = .*" \ - "9.1: tdump, memrange collected" - -gdb_tfind_test "9.1: find frame for TP $tdp6" "tracepoint $tdp6" \ - "\$tracepoint" "$tdp6" - -# globals were collected at tdp6 -gdb_test "tdump" \ - "gdb_char_test = 1.*gdb_short_test = 2.*gdb_long_test = 3" \ - "9.1: tdump, global variables collected" - -# 9.2 test tdump with arguments -# [no go, tdump doesn't have any arguments] - -# 9.3 help tdump - -gdb_test "help tdump" "Print everything collected at the current.*" \ - "9.3: help tdump" - -set linecount1 0 -set linecount2 0 -set linecount3 0 -set linecount4 0 -set linecount5 0 -set linecount6 0 - -gdb_tfind_test "11.x, 12.1: find start frame" "start" "0" - -# -# 11.x test built-in trace variables $trace_frame, $trace_line etc. -# - -gdb_test "printf \"x %d x\\n\", \$trace_frame" "x 0 x" \ - "11.1: test \$trace_frame" - -gdb_test "printf \"x %d x\\n\", \$tracepoint" "x $tdp1 x" \ - "11.2: test \$tracepoint" - -gdb_test "printf \"x %d x\\n\", \$trace_line" "x $testline1 x" \ - "11.3: test \$trace_line" - -send_gdb "print \$trace_file\n" -gdb_expect { - -re "\\$\[0-9\]+ = \"$srcfile\"\[\r\n\]+$gdb_prompt $" { - pass "11.4: test \$trace_file" - } - -re "\\$\[0-9\]+ = \"$srcdir/$subdir/$srcfile\"\[\r\n\]+$gdb_prompt $" { - pass "11.4: test \$trace_file" - } - -re "$gdb_prompt $" { - fail "11.4: test \$trace_file" - } - timeout { - fail "11.4: test \$trace_file (timeout)" - } -} - -#gdb_test "print \$trace_file" "\"$srcdir/$subdir/$srcfile\"" \ -# "11.4: test \$trace_file" - -# -# 12.x test report generation using arbitrary GDB commands, loops etc. -# - -send_gdb "while \$trace_frame != -1\n output \$trace_file\n printf \", line \%d \(tracepoint #\%d\)\\n\", \$trace_line, \$tracepoint\n tfind\n end\n" -gdb_expect { - -re " line $testline1 .tracepoint .$tdp1" { - set linecount1 [expr $linecount1 + 1] - exp_continue - } - -re " line $testline2 .tracepoint .$tdp2" { - set linecount2 [expr $linecount2 + 1] - exp_continue - } - -re " line $testline3 .tracepoint .$tdp3" { - set linecount3 [expr $linecount3 + 1] - exp_continue - } - -re " line $testline4 .tracepoint .$tdp4" { - set linecount4 [expr $linecount4 + 1] - exp_continue - } - -re " line $testline5 .tracepoint .$tdp5" { - set linecount5 [expr $linecount5 + 1] - exp_continue - } - -re " line $testline6 .tracepoint .$tdp6" { - set linecount6 [expr $linecount6 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount1 < 4) || ($linecount2 < 4) || ($linecount3 < 4) || ($linecount4 < 4) || ($linecount5 < 4) || ($linecount6 < 4) } { - fail "12.1: trace report #1" - } else { - pass "12.1: trace report #1" - } - } - timeout { - fail "12.1: trace report #1 (timeout)" - } -} - -gdb_tfind_test "12.2: find first TDP #2 frame" "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2" - -set linecount2 0 - -send_gdb "while \$trace_frame != -1\n printf \"tracepoint #\%d, FP 0x\%08x, SP 0x\%08x, PC 0x%08x\\n\", \$tracepoint, \$fp, \$sp, \$pc\n tfind tracepoint\n end\n" -gdb_expect { - -re "tracepoint #$tdp2, FP $hex, SP $hex, PC $hex" { - set linecount2 [expr $linecount2 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount2 < 4) } { - fail "12.2: trace report #2" - } else { - pass "12.2: trace report #2" - } - } - timeout { - fail "12.2: trace report #2 (timeout)" - } -} - -gdb_tfind_test "12.3: find first TDP #3 frame" "tracepoint $tdp3" \ - "\$tracepoint" "$tdp3" - -set linecount3 0 - -send_gdb "while \$trace_frame != -1\n printf \"TDP #\%d, frame \%d: depth = \%d, q1 = \%d\\n\", \$tracepoint, \$trace_frame, depth, q1\n tfind tracepoint\n end\n" -gdb_expect { - -re "TDP #$tdp3, frame $decimal: depth = $decimal, q1 = $decimal" { - set linecount3 [expr $linecount3 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount3 < 4) } { - fail "12.3: trace report #3" - } else { - pass "12.3: trace report #3" - } - } - timeout { - fail "12.3: trace report #3 (timeout)" - } -} - -gdb_tfind_test "12.4: find first TDP #6 frame" "tracepoint $tdp6" \ - "\$tracepoint" "$tdp6" - -set linecount6 0 - -send_gdb "while \$trace_frame != -1\n printf \"TDP #\%d, frame %d: char_test = \%d, long_test = \%d\\n\", \$tracepoint, \$trace_frame, gdb_char_test, gdb_long_test\n tfind tracepoint\n end\n" -gdb_expect { - -re "TDP #$tdp6, frame $decimal: char_test = $arg1, long_test = $arg3" { - set linecount6 [expr $linecount6 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount6 < 4) } { - fail "12.4: trace report #4" - } else { - pass "12.4: trace report #4" - } - } - timeout { - fail "12.4: trace report #4 (timeout)" - } -} - -# Finished! -gdb_tfind_test "finished: make sure not debugging any trace frame" "none" "-1" Index: backtrace.exp =================================================================== --- backtrace.exp (revision 816) +++ backtrace.exp (nonexistent) @@ -1,379 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 srcfile gdb_c_test.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-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - untested backtrace.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 backtrace.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" - return 1; - -} - -# -# test backtraces in trace frames -# - -set testline1 0 -set testline2 0 -set testline3 0 -set testline4 0 -set testline5 0 -set testline6 0 - -set arg1 1 -set arg2 2 -set arg3 3 -set arg4 4 -set arg5 5 -set arg6 6 - -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } { - fail "Could not find gdb_recursion_test function" - return; -} - -send_gdb "list $baseline, +12\n" -gdb_expect { - -re "\[\r\n\](\[0-9\]+).*gdbtestline 1 " { - set testline1 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 2 " { - set testline2 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 3 " { - set testline3 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 4 " { - set testline4 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 5 " { - set testline5 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 6 " { - set testline6 $expect_out(1,string) - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($testline1 == 0) || ($testline2 == 0) || ($testline3 == 0) || ($testline4 == 0) || ($testline5 == 0) || ($testline6 == 0) } { - untested backtrace.exp - return -1 -all tests in this module will fail." - } - } - default { - untested backtrace.exp - return -1 -all tests in this module will fail." - } -} - -# -# Setup backtrace experiment. This will involve: -# 1) a tracepoint where nothing is collected -# 2) a tracepoint where only regs are collected -# 3) a tracepoint where regs, locals and args are collected -# 4) a tracepoint where regs plus some amount of stack are collected. -# - -gdb_delete_tracepoints -set tdp2 [gdb_gettpnum $testline2] -set tdp3 [gdb_gettpnum $testline3] -set tdp4 [gdb_gettpnum $testline4] -set tdp5 [gdb_gettpnum $testline5] -set tdp6 [gdb_gettpnum $testline6] -if { $tdp2 <= 0 || $tdp3 <= 0 || \ - $tdp4 <= 0 || $tdp5 <= 0 || $tdp6 <= 0 } then { - fail "setting tracepoints failed" - return; -} - -#gdb_trace_setactions "setup TP to collect FP" \ -# "$tdp2" \ -# "collect \$fp" "" -# - -gdb_trace_setactions "8.6: setup TP to collect regs" \ - "$tdp3" \ - "collect \$regs" "^$" - -gdb_trace_setactions "8.6: setup TP to collect regs, args, and locals" \ - "$tdp4" \ - "collect \$regs, \$args, \$locs" "^$" - -gdb_trace_setactions "8.6: setup TP to collect stack mem cast expr" \ - "$tdp6" \ - "collect \$fp, \(\*\(void \*\*\) \(\$sp\)\) @ 64" "^$" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,$arg1,$arg2,$arg3,$arg4,$arg5,$arg6" - sleep 5 -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -gdb_test "tstop" "" "" - -proc gdb_backtrace_tdp_1 { msg } { - global gdb_prompt - - # We are in a trace frame at which we didn't collect anything - # except $PC. Therefore we expect to be able to identify stack - # frame #0, but that's about all. In particular we do not expect - # to be able to display the function's arguments or locals, and we - # do not expect to be able to identify the caller of this function. - - send_gdb "backtrace\n" - gdb_expect { - -re "#0\[\t \]+gdb_recursion_test.*depth=.*$gdb_prompt $" { - pass "$msg" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -proc gdb_backtrace_tdp_2 { msg } { - global gdb_prompt - - # We are in a trace frame at which we collected only the registers - # Therefore we expect to be able to identify stack frame #0, but - # we don't expect to be able to display its args unles they are - # passed in registers (which isn't the case for m68k), and we - # don't expect to be able to identify the caller's stack frame. - - send_gdb "backtrace\n" - gdb_expect { - -re "#0\[\t \]+gdb_recursion_test.*depth=.*$gdb_prompt $" { - pass "$msg" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -proc gdb_backtrace_tdp_3 { msg } { - global gdb_prompt - - # We are in a trace frame at which we collected all registers, all - # arguments and all locals. This means that the display of - # stack frame #0 should be complete (including argument values). - - send_gdb "backtrace\n" - gdb_expect { - -re "#0\[\t \]+gdb_recursion_test.*depth=\[0-9\]+.*q1=\[0-9\]+.*q2=\[0-9\]+.*q3=\[0-9\]+.*q4=\[0-9\]+.*q5=\[0-9\]+.*q6=\[0-9\]+.*$gdb_prompt $" { - pass "$msg" - } - -re "#0\[\t \]+gdb_recursion_test.*depth=Cannot access.*$gdb_prompt $" { - fail "$msg (failed to collect arguments)" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -proc gdb_backtrace_tdp_4 { msg depth } { - global gdb_prompt - - # We are in a trace frame at which we collected all registers, - # plus a sizeable hunk of stack memory. This should enable us to - # display at least several stack frames worth of backtrace. We'll - # assume that if we can't display at least "depth" levels (with - # args), it counts as an error. - - send_gdb "backtrace\n" - gdb_expect { - -re "#$depth\[\t \].*gdb_recursion_test.*depth=\[0-9\]+.*q1=\[0-9\]+.*q2=\[0-9\]+.*q3=\[0-9\]+.*q4=\[0-9\]+.*q5=\[0-9\]+.*q6=\[0-9\]+.*$gdb_prompt $" { - pass "$msg" - } - -re "#$depth\[\t \].*gdb_recursion_test.*depth=.*$gdb_prompt $" { - fail "$msg (args missing from #$depth stack frame)" - } - -re "#\[0-9\]+\[\t \].*gdb_recursion_test.*depth=.*$gdb_prompt $" { - fail "$msg (fewer than $depth stack frames found)" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -# -# begin backtrace test -# - -set timeout 60 - -gdb_tfind_test "init: make sure not debugging any trace frame" "none" "-1" - -gdb_tfind_test "8.6: find start frame" "start" "0" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 1, collect nothing" - -gdb_tfind_test "8.6: find frame 1" "1" "1" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 1, collect regs" - -gdb_tfind_test "8.6: find frame 2" "2" "2" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 1, collect args and locals" - - -gdb_tfind_test "8.6: find frame 4" "4" "4" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_tfind_test "8.6: find frame 5" "5" "5" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 2, collect nothing" - -gdb_tfind_test "8.6: find frame 6" "6" "6" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 2, collect regs" - -gdb_tfind_test "8.6: find frame 7" "7" "7" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 2, collect args and locals" - - -gdb_tfind_test "8.6: find frame 9" "9" "9" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_tfind_test "8.6: find frame 10" "10" "10" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 3, collect nothing" - -gdb_tfind_test "8.6: find frame 11" "11" "11" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 3, collect regs" - -gdb_tfind_test "8.6: find frame 12" "12" "12" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 3, collect args and locals" - - -gdb_tfind_test "8.6: find frame 14" "14" "14" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_tfind_test "8.6: find frame 15" "15" "15" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 4, collect nothing" - -gdb_tfind_test "8.6: find frame 16" "16" "16" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 4, collect regs" - -gdb_tfind_test "8.6: find frame 17" "17" "17" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 4, collect args and locals" - - -gdb_tfind_test "8.6: find frame 19" "19" "19" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_test "printf \"x \%d x\\n\", depth == 3" \ - "x 0 x" \ - "1.13: trace in recursion: depth not equal to 3" - -# Finished! -gdb_test "tfind none" "" "" Index: passcount.exp =================================================================== --- passcount.exp (revision 816) +++ passcount.exp (nonexistent) @@ -1,178 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested passcount.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_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 + 3] - -# -# test "passcount" command -# - -gdb_delete_tracepoints -set 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; -} - -# 4.1 passcount of specified tracepoint - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_recursion_test.*" \ - "4.1a: set three tracepoints, passcounts all zero" - -gdb_test "passcount 2 $trcpt1" \ - "Setting tracepoint $trcpt1.s passcount to 2" \ - "4.1b: set 1st tracepoint's passcount to two" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_recursion_test.*" \ - "4.1c: verify 1st tracepoint's passcount set to two" - -gdb_test "passcount 4 $trcpt2" \ - "Setting tracepoint $trcpt2.s passcount to 4" \ - "4.1d: set 2nd tracepoint's passcount to four" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_recursion_test.*" \ - "4.1c: verify 2nd tracepoint's passcount set to four" - -# 4.2 passcount of last (default) tracepoint - -gdb_test "passcount 6" \ - "Setting tracepoint $trcpt3.s passcount to 6" \ - "4.2b: set last (default) tp's passcount to six" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+6\[\t \]+.*in gdb_recursion_test.*" \ - "4.2b: verify last (default) tp's passcount set to six" - -# 4.3 run until stopped explicitly by user -# [deferred to dynamic test section] - -# 4.4 reset the previously set passcounts to new values - -gdb_test "passcount 7" \ - "Setting tracepoint $trcpt3.s passcount to 7" \ - "4.4a: reset last (default) tp's passcount to seven" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+7\[\t \]+.*in gdb_recursion_test.*" \ - "4.4a: verify reset last (default) tp's passcount to seven" - -gdb_test "passcount 5 $trcpt2" \ - "Setting tracepoint $trcpt2.s passcount to 5" \ - "4.4b: reset second tracepoint's passcount to five" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+5\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+7\[\t \]+.*in gdb_recursion_test.*" \ - "4.4c: verify reset second tracepoint's passcount to five" - -# 4.20 passcount for "all" - -gdb_test "passcount 3 all" \ - ".*$trcpt1.s pass.* 3.*$trcpt2.s pass.* 3.*$trcpt3.s pass.* 3" \ - "4.20a: set all three passcounts to three" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+3\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+3\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+3\[\t \]+.*in gdb_recursion_test.*" \ - "4.20a: set all three passcounts to three" - -gdb_test "passcount 4 all" \ - ".*$trcpt1.s pass.* 4.*$trcpt2.s pass.* 4.*$trcpt3.s pass.* 4" \ - "4.20a: reset all three passcounts to four" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_recursion_test.*" \ - "4.20b: reset all three passcounts to four" - -# 4.5 Verify trace stops on first "satisfied" passcount -# [deferred to dynamic test section] - -# 4.6 minimum passcount boundary condition - -gdb_test "passcount 0 $trcpt1" \ - "Setting tracepoint $trcpt1.s passcount to 0" \ - "4.6: set passcount to zero" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_recursion_test.*" \ - "4.6: set passcount to zero" - -# 4.7 (test a very large passcount) - -gdb_test "passcount 32767 $trcpt1" \ - "Setting tracepoint $trcpt1.s passcount to 32767" \ - "4.7: set passcount to large number (32767)" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+32767\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_recursion_test.*" \ - "4.7: set passcount to large number (32767)" - -# 4.8 set passcount for invalid tracepoint - -gdb_test "passcount 1 [expr $trcpt2 + $trcpt3]" \ - "No tracepoint number [expr $trcpt2 + $trcpt3]." \ - "4.8: invalid tracepoint number in passcount" - -# 4.9 help passcount -gdb_test "help passcount" "Set the passcount for a tracepoint.*" \ - "4.9: help passcount" - Index: circ.exp =================================================================== --- circ.exp (revision 816) +++ circ.exp (nonexistent) @@ -1,215 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -if [istarget "m68k-*-elf"] then { - pass "Test not supported on this target" - return; -} - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -set testfile "circ" -set srcfile ${testfile}.c -set binfile $objdir/$subdir/$testfile - -if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested circ.exp - return -1 -} - -# Tests: -# 1) Set up a trace experiment that will collect approximately 10 frames, -# requiring more than 512 but less than 1024 bytes of cache buffer. -# (most targets should have at least 1024 bytes of cache buffer!) -# Run and confirm that it collects all 10 frames. -# 2) Artificially limit the trace buffer to 512 bytes, and rerun the -# experiment. Confirm that the first several frames are collected, -# but that the last several are not. -# 3) Set trace buffer to circular mode, still with the artificial limit -# of 512 bytes, and rerun the experiment. Confirm that the last -# several frames are collected, but the first several are not. -# - -# return 0 for success, 1 for failure -proc run_trace_experiment { pass } { - gdb_run_cmd - - if [gdb_test "tstart" \ - "\[\r\n\]*" \ - "start trace experiment, pass $pass"] then { return 1; } - if [gdb_test "continue" \ - "Continuing.*Breakpoint \[0-9\]+, end.*" \ - "run to end, pass $pass"] then { return 1; } - if [gdb_test "tstop" \ - "\[\r\n\]*" \ - "stop trace experiment, pass $pass"] then { return 1; } - return 0; -} - -# return 0 for success, 1 for failure -proc set_a_tracepoint { func } { - if [gdb_test "trace $func" \ - "Tracepoint \[0-9\]+ at .*" \ - "set tracepoint at $func"] then { - return 1; - } - if [gdb_trace_setactions "set actions for $func" \ - "" \ - "collect testload" "^$"] then { - return 1; - } - return 0; -} - -# return 0 for success, 1 for failure -proc setup_tracepoints { } { - gdb_delete_tracepoints - if [set_a_tracepoint func0] then { return 1; } - if [set_a_tracepoint func1] then { return 1; } - if [set_a_tracepoint func2] then { return 1; } - if [set_a_tracepoint func3] then { return 1; } - if [set_a_tracepoint func4] then { return 1; } - if [set_a_tracepoint func5] then { return 1; } - if [set_a_tracepoint func6] then { return 1; } - if [set_a_tracepoint func7] then { return 1; } - if [set_a_tracepoint func8] then { return 1; } - if [set_a_tracepoint func9] then { return 1; } - return 0; -} - -# return 0 for success, 1 for failure -proc trace_buffer_normal { } { - if [gdb_test "maint packet QTBuffer:size:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - if [gdb_test "maint packet QTBuffer:circular:0" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - return 0; -} - -# return 0 for success, 1 for failure -proc gdb_trace_circular_tests { } { - - # 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" - return 1; - } - - if [trace_buffer_normal] then { return 1; } - - gdb_test "break begin" "" "" - gdb_test "break end" "" "" - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - - if [setup_tracepoints] then { return 1; } - - # First, run the trace experiment with default attributes: - # Make sure it behaves as expected. - if [run_trace_experiment 1] then { return 1; } - if [gdb_test "tfind start" \ - "#0 func0 .*" \ - "find frame zero, pass 1"] then { return 1; } - - if [gdb_test "tfind 9" \ - "#0 func9 .*" \ - "find frame nine, pass 1"] then { return 1; } - - if [gdb_test "tfind none" \ - "#0 end .*" \ - "quit trace debugging, pass 1"] then { return 1; } - - # Then, shrink the trace buffer so that it will not hold - # all ten trace frames. Verify that frame zero is still - # collected, but frame nine is not. - if [gdb_test "maint packet QTBuffer:size:200" \ - "received: .OK." "shrink the target trace buffer"] then { - return 1; - } - if [run_trace_experiment 2] then { return 1; } - if [gdb_test "tfind start" \ - "#0 func0 .*" \ - "find frame zero, pass 2"] then { return 1; } - - if [gdb_test "tfind 9" \ - ".* failed to find .*" \ - "fail to find frame nine, pass 2"] then { return 1; } - - if [gdb_test "tfind none" \ - "#0 end .*" \ - "quit trace debugging, pass 2"] then { return 1; } - - # Finally, make the buffer circular. Now when it runs out of - # space, it should wrap around and overwrite the earliest frames. - # This means that: - # 1) frame zero will be overwritten and therefore unavailable - # 2) the earliest frame in the buffer will be other-than-zero - # 3) frame nine will be available (unlike on pass 2). - if [gdb_test "maint packet QTBuffer:circular:1" \ - "received: .OK." "make the target trace buffer circular"] then { - return 1; - } - if [run_trace_experiment 3] then { return 1; } - if [gdb_test "tfind start" \ - "#0 func\[1-9\] .*" \ - "first frame is NOT frame zero, pass 3"] then { return 1; } - - if [gdb_test "tfind 9" \ - "#0 func9 .*" \ - "find frame nine, pass 3"] then { return 1; } - - if [gdb_test "tfind none" \ - "#0 end .*" \ - "quit trace debugging, pass 3"] then { return 1; } - - return 0; -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $binfile - -if [target_info exists gdb_stub] { - gdb_step_for_stub; -} -# Body of test encased in a proc so we can return prematurely. -if { ![gdb_trace_circular_tests] } then { - # Set trace buffer attributes back to normal - trace_buffer_normal; -} - -# Finished! -gdb_test "tfind none" "" "" Index: collection.c =================================================================== --- collection.c (revision 816) +++ collection.c (nonexistent) @@ -1,280 +0,0 @@ -/* - * Test program for trace collection - */ - -/* - * Typedefs - */ - -typedef struct TEST_STRUCT { - char memberc; - int memberi; - float memberf; - double memberd; -} test_struct; - -typedef int test_array [4]; - -/* - * Global variables to be collected - */ - -char globalc; -int globali; -float globalf; -double globald; -test_struct globalstruct; -test_struct *globalp; -int globalarr[16]; - -/* - * Additional globals used in arithmetic tests - */ - -signed char c0, c1, c2, c3, c4, c5, c6, c7, - c8, c9, c10, c11, c12, c13, c14, c15, cminus; -signed short s0, s1, s2, s3, s4, s5, s6, s7, - s8, s9, s10, s11, s12, s13, s14, s15, sminus; -signed long l0, l1, l2, l3, l4, l5, l6, l7, - l8, l9, l10, l11, l12, l13, l14, l15, lminus; - - -/* - * Test functions - */ - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -/* Test collecting args. */ -int args_test_func (argc, argi, argf, argd, argstruct, argarray) - char argc; - int argi; - float argf; - double argd; - test_struct argstruct; - int argarray[4]; -{ - int i; - - i = (int) argc + argi + argf + argd + argstruct.memberi + argarray[1]; - - return i; -} - -/* Test collecting struct args. */ -int argstruct_test_func (argstruct) - test_struct argstruct; -{ - return (int) argstruct.memberc + argstruct.memberi + - argstruct.memberf + argstruct.memberd; -} - -/* Test collecting array args. */ -int argarray_test_func (argarray) - int argarray[4]; -{ - return (int) argarray[0] + argarray[1] + argarray[2] + argarray[3]; -} - - - -int local_test_func () /* test collecting locals */ -{ - char locc = 11; - int loci = 12; - float locf = 13.3; - double locd = 14.4; - test_struct locst; - int locar[4]; - int i; - - locst.memberc = 15; - locst.memberi = 16; - locst.memberf = 17.7; - locst.memberd = 18.8; - locar[0] = 121; - locar[1] = 122; - locar[2] = 123; - locar[3] = 124; - - i = /* Set_Tracepoint_Here */ - (int) locc + loci + locf + locd + locst.memberi + locar[1]; - - return i; -} - -int reglocal_test_func () /* test collecting register locals */ -{ - register char locc = 11; - register int loci = 12; - register float locf = 13.3; - register double locd = 14.4; - register test_struct locst; - register int locar[4]; - int i; - - locst.memberc = 15; - locst.memberi = 16; - locst.memberf = 17.7; - locst.memberd = 18.8; - locar[0] = 121; - locar[1] = 122; - locar[2] = 123; - locar[3] = 124; - - i = /* Set_Tracepoint_Here */ - (int) locc + loci + locf + locd + locst.memberi + locar[1]; - - return i; -} - -int statlocal_test_func () /* test collecting static locals */ -{ - static char locc; - static int loci; - static float locf; - static double locd; - static test_struct locst; - static int locar[4]; - int i; - - locc = 11; - loci = 12; - locf = 13.3; - locd = 14.4; - locst.memberc = 15; - locst.memberi = 16; - locst.memberf = 17.7; - locst.memberd = 18.8; - locar[0] = 121; - locar[1] = 122; - locar[2] = 123; - locar[3] = 124; - - i = /* Set_Tracepoint_Here */ - (int) locc + loci + locf + locd + locst.memberi + locar[1]; - - /* Set static locals back to zero so collected values are clearly special. */ - locc = 0; - loci = 0; - locf = 0; - locd = 0; - locst.memberc = 0; - locst.memberi = 0; - locst.memberf = 0; - locst.memberd = 0; - locar[0] = 0; - locar[1] = 0; - locar[2] = 0; - locar[3] = 0; - - return i; -} - - -int globals_test_func () -{ - int i = 0; - - i += globalc + globali + globalf + globald; - i += globalstruct.memberc + globalstruct.memberi; - i += globalstruct.memberf + globalstruct.memberd; - i += globalarr[1]; - - return i; /* Set_Tracepoint_Here */ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i = 0; - test_struct mystruct; - int myarray[4]; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - /* Assign collectable values to global variables. */ - l0 = s0 = c0 = 0; l1 = s1 = c1 = 1; - l2 = s2 = c2 = 2; l3 = s3 = c3 = 3; - l4 = s4 = c4 = 4; l5 = s5 = c5 = 5; - l6 = s6 = c6 = 6; l7 = s7 = c7 = 7; - l8 = s8 = c8 = 8; l9 = s9 = c9 = 9; - l10 = s10 = c10 = 10; l11 = s11 = c11 = 11; - l12 = s12 = c12 = 12; l13 = s13 = c13 = 13; - l14 = s14 = c14 = 14; l15 = s15 = c15 = 15; - lminus = sminus = cminus = -2; - globalc = 71; - globali = 72; - globalf = 73.3; - globald = 74.4; - globalstruct.memberc = 81; - globalstruct.memberi = 82; - globalstruct.memberf = 83.3; - globalstruct.memberd = 84.4; - globalp = &globalstruct; - - for (i = 0; i < 15; i++) - globalarr[i] = i; - - mystruct.memberc = 101; - mystruct.memberi = 102; - mystruct.memberf = 103.3; - mystruct.memberd = 104.4; - myarray[0] = 111; - myarray[1] = 112; - myarray[2] = 113; - myarray[3] = 114; - - /* Call test functions, so they can be traced and data collected. */ - i = 0; - i += args_test_func (1, 2, 3.3, 4.4, mystruct, myarray); - i += argstruct_test_func (mystruct); - i += argarray_test_func (myarray); - i += local_test_func (); - i += reglocal_test_func (); - i += statlocal_test_func (); - i += globals_test_func (); - - /* Values of globals at end of test should be different from - values that they had when trace data was captured. */ - - l0 = s0 = c0 = 0; l1 = s1 = c1 = 0; - l2 = s2 = c2 = 0; l3 = s3 = c3 = 0; - l4 = s4 = c4 = 0; l5 = s5 = c5 = 0; - l6 = s6 = c6 = 0; l7 = s7 = c7 = 0; - l8 = s8 = c8 = 0; l9 = s9 = c9 = 0; - l10 = s10 = c10 = 0; l11 = s11 = c11 = 0; - l12 = s12 = c12 = 0; l13 = s13 = c13 = 0; - l14 = s14 = c14 = 0; l15 = s15 = c15 = 0; - lminus = sminus = cminus = 0; - - /* Set 'em back to zero, so that the collected values will be - distinctly different from the "realtime" (end of test) values. */ - - globalc = 0; - globali = 0; - globalf = 0; - globald = 0; - globalstruct.memberc = 0; - globalstruct.memberi = 0; - globalstruct.memberf = 0; - globalstruct.memberd = 0; - globalp = 0; - for (i = 0; i < 15; i++) - globalarr[i] = 0; - - end (); - return 0; -}
collection.c Property changes : Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -Id \ No newline at end of property Index: tracecmd.exp =================================================================== --- tracecmd.exp (revision 816) +++ tracecmd.exp (nonexistent) @@ -1,169 +0,0 @@ -# Copyright 1998, 2007, 2008 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 . - -# 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 { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested tracecmd.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_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 + 1] -set testline2 [expr $baseline + 3] - -# -# test "help tracepoints" -# - -set helpcnt 0; -test_class_help "tracepoints" { - "Tracing of program execution without stopping the program\.[\r\n\]+" -} "1.0: help tracepoints" - -# -# test trace command: -# - -# 1.1 trace source line -gdb_delete_tracepoints -gdb_test "trace $srcfile:$testline2" \ - "Tracepoint $decimal at $hex: file.*$srcfile, line $testline2." \ - "1.1a: set tracepoint at sourceline" -gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline2" \ - "1.1b: trace sourcefile:line" - -# 1.2 trace invalid source line -gdb_delete_tracepoints -gdb_test "trace $srcfile:99999" "No line 99999 in file \".*$srcfile\"." \ - "1.2a: trace invalid line in sourcefile" -gdb_test "info trace" "No tracepoints.*" \ - "1.2b: reject invalid line in srcfile" - -# 1.3 trace line in invalid source file -gdb_delete_tracepoints -gdb_test "trace NoSuChFiLe.c:1" "No source file named NoSuChFiLe.c." \ - "1.3a: trace invalid source file" -gdb_test "info trace" "No tracepoints.*" \ - "1.3b: reject invalid srcfile" - -# 1.4 trace function by name -gdb_delete_tracepoints -gdb_test "trace gdb_recursion_test" \ - "Tracepoint $decimal at $hex: file.*$srcfile, line $testline1." \ - "1.4a: trace function by name" -gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline1" \ - "1.4b: trace function by name" - -# 1.5 trace non-existant function -gdb_delete_tracepoints -gdb_test "trace NoSuChFuNc" "Function \"NoSuChFuNc\" not defined." \ - "1.5a: trace invalid function" -gdb_test "info trace" "No tracepoints.*" \ - "1.5b: reject invalid srcfile" - -# 1.6 trace at a specific address -# Collect the address of "gdb_asm_test", and use that. -send_gdb "print gdb_asm_test\n" -gdb_expect { - -re "\[$\]\[0-9\].*0x(\[0-9a-fA-F\]+).*$gdb_prompt $" { - set asm_test_addr $expect_out(1,string) - } - timeout { } -} - -gdb_delete_tracepoints -gdb_test "trace \*0x$asm_test_addr" \ - "Tracepoint $decimal at .*$asm_test_addr.*" \ - "1.6a: trace at specific address" -gdb_test "info trace" "$asm_test_addr.*gdb_asm_test.*" \ - "1.6b: verify trace at specific address" - -# 1.7 trace at function's exact address -# Collect the address of the function for comparison -send_gdb "print gdb_recursion_test\n" -gdb_expect { - -re "\[$\]\[0-9\].*0x(\[0-9a-fA-F\]+).*$gdb_prompt $" { - set c_test_addr $expect_out(1,string) - } - timeout { } -} - -gdb_delete_tracepoints -gdb_test "trace \*gdb_recursion_test" \ - "Tracepoint $decimal at .*$c_test_addr.*" \ - "1.7a: trace at function label (before prologue)" -gdb_test "info trace" "$c_test_addr.*in gdb_recursion_test.*:$baseline" \ - "1.7b: verify trace at specific address" - -# 1.8 trace at invalid address -# no address is invalid - -# 1.9 trace no arguments -gdb_test "trace" "trace command requires an argument" \ - "1.9: trace " - -# 1.10 set large number of tracepoints -# deferred to limits test module - -# 1.11 tracepoint conditions -# conditions on tracepoints not implemented - -# 1.12 set tracepoint in prologue -# [see tfind.exp] - -# 1.13 trace on recursion -# interesting only in "live" session: see backtrace.exp for live test. - -# 1.14 help trace -gdb_test "help trace" "Set a tracepoint at .*" "1.14: help trace" - - Index: deltrace.exp =================================================================== --- deltrace.exp (revision 816) +++ deltrace.exp (nonexistent) @@ -1,269 +0,0 @@ -# Copyright 1998, 1999, 2007, 2008 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 . - -# 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 { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug nowarnings}] != "" } { - untested deltrace.exp - return -1 - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_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 + 4] - -# -# test "delete tracepoints" command -# - -# 3.1 delete tracepoints (all) -gdb_delete_tracepoints -gdb_test "trace gdb_c_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 1" -gdb_test "trace gdb_asm_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 2" -gdb_test "trace $testline1" "Tracepoint \[0-9\]+ at .*" "set tracepoint 3" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \ - "3.1a: set three tracepoints" - -send_gdb "delete tracepoints\n" -gdb_expect 30 { - -re "Delete all tracepoints.*y or n.*$" { - send_gdb "y\n" - gdb_expect 30 { - -re "$gdb_prompt $" { - pass "3.1b: delete all tracepoints" - } - timeout { fail "3.1b: delete all tracepoints (timeout)" } - } - } - -re "$gdb_prompt $" { # This should only happen if there are no tracepoints - fail "3.1b: delete all tracepoints (no tracepoints?)" - } - timeout { fail "3.1b: delete all tracepoints (timeout)" } -} - -# 3.2 delete tracepoint -gdb_delete_tracepoints -set 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; -} - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_recursion_test.*" \ - "3.2a: set three tracepoints" - -#gdb_test "delete tracepoint $trcpt1" "" "" -send_gdb "delete tracepoint $trcpt1\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.2b: delete first tracepoint" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.2b: delete first tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2b: delete first tracepoint" - } - timeout { - fail "3.2b: delete first tracepoint (timeout)" - } -} - -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" { - fail "3.2c: verify delete first tracepoint (argh)" - } - -re "$trcpt2\[\t \]+y.*gdb_asm_test.*\[\r\n\t ]+$trcpt3\[\t \]+y.* in gdb_recursion_test at .*$gdb_prompt $" { - pass "3.2c: verify delete first tracepoint" - } - -re ".*$gdb_prompt $" { - fail "3.2c: verify delete first tracepoint (mumble)" - } - timeout { - fail "3.2c: verify delete first tracepoint (timeout)" - } -} - -#gdb_test "delete tracepoint $trcpt2" "" "" -send_gdb "delete tracepoint $trcpt2\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.2d: delete second tracepoint" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.2d: delete second tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2d: delete second tracepoint" - } - timeout { - fail "3.2d: delete second tracepoint (timeout)" - } -} - -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" { - fail "3.2e: verify delete second tracepoint" - } - -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" { - fail "3.2e: verify delete second tracepoint" - } - -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { - pass "3.2e: verify delete second tracepoint" - } - -re "$gdb_prompt $" { - fail "3.2e: verify delete second tracepoint" - } - timeout { - fail "3.2e: verify delete second tracepoint (timeout)" - } -} - -#gdb_test "delete tracepoint $trcpt3" "" "" -send_gdb "delete tracepoint $trcpt3\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.2f: delete third tracepoint" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.2f: delete third tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2f: delete third tracepoint" - } - timeout { - fail "3.2f: delete third tracepoint (timeout)" - } -} - -# send_gdb "ARF! \\n\n" -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { - fail "3.2g: verify delete third tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2g: verify delete third tracepoint" - } - timeout { - fail "3.2g: verify delete third tracepoint (timeout)" - } -} - -# 3.3 delete three tracepoints at once -gdb_delete_tracepoints -set 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; -} - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \ - "3.3a: set three tracepoints" - -#gdb_test "delete tracepoint $trcpt1 $trcpt2 $trcpt3" "" "" -send_gdb "delete tracepoint $trcpt1 $trcpt2 $trcpt3\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.3b: delete three tracepoints" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.3b: delete three tracepoints" - } - -re "$gdb_prompt $" { - pass "3.3b: delete three tracepoints" - } - timeout { - fail "3.3b: delete three tracepoint (timeout)" - } -} - -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt1\[\t \]+y\[\t \]+0x.*in gdb_c_test.*$gdb_prompt $" { - fail "3.3c: verify delete three tracepoints (first one persists)" - } - -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" { - fail "3.3c: verify delete three tracepoints (second one persists)" - } - -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { - fail "3.3c: verify delete three tracepoints (third one persists)" - } - -re "$gdb_prompt $" { - pass "3.3c: verify delete three tracepoints" - } - timeout { - fail "3.3c: verify delete three tracepoints (timeout)" - } -} - -# 3.4 delete invalid tracepoint number -gdb_test "delete tracepoint [expr $trcpt2 + $trcpt3]" \ - "No tracepoint number [expr $trcpt2 + $trcpt3]." \ - "3.4: delete invalid tracepoint number" - -# 3.5 delete tracepoint number zero -gdb_test "delete tracepoint 0" "bad tracepoint number at or near '0'" \ - "3.5: delete tracepoint number zero" - -# 3.6 help delete tracepoints -gdb_test "help delete tracepoints" \ - "Delete specified tracepoints.*" \ - "3.6: help delete tracepoints"

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.