1# Copyright 1998-2015 Free Software Foundation, Inc. 2# 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16# This file was written by Michael Snyder (msnyder@cygnus.com) 17 18load_lib "trace-support.exp" 19 20 21gdb_exit 22gdb_start 23 24standard_testfile actions.c 25if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ 26 executable {debug nowarnings}] != "" } { 27 untested infotrace.exp 28 return -1 29} 30gdb_reinitialize_dir $srcdir/$subdir 31 32# If testing on a remote host, download the source file. 33# remote_download host $srcdir/$subdir/$srcfile 34 35gdb_file_cmd $binfile 36 37# 38# test "info tracepoints" command 39# 40 41gdb_delete_tracepoints 42set c_test_num [gdb_gettpnum gdb_c_test] 43set asm_test_num [gdb_gettpnum gdb_asm_test] 44if { $c_test_num <= 0 || $asm_test_num <= 0 } then { 45 fail "setting tracepoints" 46 return 47} 48 49# 2.1 info tracepoints (all) 50gdb_test "info tracepoints" \ 51 "Num Type\[ \]+Disp Enb Address\[ \]+What.* 52\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. 53\[\t \]+not installed on target. 54\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. 55\[\t \]+not installed on target." \ 56 "2.1: info tracepoints (all)" 57 58# 2.2 info tracepoint (specific) 59gdb_test "info tracepoint $c_test_num" \ 60 "Num Type\[ \]+Disp Enb Address\[ \]+What.* 61\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. 62\[\t \]+not installed on target." \ 63 "2.2a: info tracepoint $c_test_num (gdb_c_test)" 64 65gdb_test "info tracepoint $asm_test_num" \ 66 "Num Type\[ \]+Disp Enb Address\[ \]+What.* 67\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. 68\[\t \]+not installed on target." \ 69 "2.2b: info tracepoint $asm_test_num (gdb_asm_test)" 70 71# 2.3 info tracepoint (invalid tracepoint number) 72gdb_test "info tracepoint [expr $c_test_num + $asm_test_num]" \ 73 "No tracepoint matching '[expr $c_test_num + $asm_test_num]'." \ 74 "2.3: info tracepoint (invalid tracepoint number)" 75 76# 2.4 info tracepoints (list of numbers) 77gdb_test_multiple "info tracepoints $c_test_num $asm_test_num " \ 78 "2.4: info trace rejects multiple tracepoint numbers" { 79 -re "Num Enb .*$gdb_prompt $" { 80 fail "2.4: info trace rejects multiple tracepoint numbers" 81 } 82 -re ".*$gdb_prompt $" { 83 pass "2.4: info trace rejects multiple tracepoint numbers" 84 } 85 } 86 87# 2.5 help info trace 88gdb_test "help info tracepoints" \ 89 "Status of specified tracepoints .all tracepoints if no argument.*" \ 90 "2.5: help info tracepoints" 91 92# 2.6 info tracepoints (check trace buffer usage). We need a live 93# tracing. 94 95# Load the binary to the target too. 96gdb_load $binfile 97 98# Can't use runto_main here, because that would delete the tracepoints 99# created above. 100gdb_breakpoint "main" 101gdb_trace_setactions "collect on tracepoint 1" "1" \ 102 "collect gdb_struct1_test" "^$" 103gdb_run_cmd 104if {[gdb_test "" "Breakpoint ${decimal}, main.*"] != 0} { 105 fail "Can't run to main" 106 return -1 107} 108 109if { ![gdb_target_supports_trace] } then { 110 unsupported "Current target does not support trace" 111 return 1 112} 113 114gdb_test "break end" "Breakpoint \[0-9\] at .*" 115gdb_test_no_output "tstart" 116gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ 117 "continue to end" 118gdb_test_no_output "tstop" 119gdb_test "tstatus" 120gdb_test "info tracepoints" \ 121 "Num Type\[ \]+Disp Enb Address\[ \]+What.* 122\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. 123\[\t \]+tracepoint already hit 1 time. 124\[\t \]+trace buffer usage ${decimal} bytes. 125\[\t \]+collect gdb_struct1_test. 126\tinstalled on target. 127\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. 128\tinstalled on target." \ 129 "2.6: info tracepoints (trace buffer usage)" 130