Index: gdb/testsuite/gdb.trace/change-loc.exp |
diff --git a/gdb/testsuite/gdb.trace/change-loc.exp b/gdb/testsuite/gdb.trace/change-loc.exp |
index 0064b6ffc3f37ae069b82a3271847b099d6d8805..1b8c04e9004765dd185fb26e951a6e889208f6f7 100644 |
--- a/gdb/testsuite/gdb.trace/change-loc.exp |
+++ b/gdb/testsuite/gdb.trace/change-loc.exp |
@@ -1,4 +1,4 @@ |
-# Copyright 2011-2012 Free Software Foundation, Inc. |
+# Copyright 2011-2013 Free Software Foundation, Inc. |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
@@ -12,7 +12,7 @@ |
# You should have received a copy of the GNU General Public License |
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
-load_lib "trace-support.exp"; |
+load_lib "trace-support.exp" |
if {[skip_shlib_tests]} { |
return 0 |
@@ -55,7 +55,7 @@ if ![runto_main] { |
if { ![gdb_target_supports_trace] } then { |
unsupported "Current target does not support trace" |
- return -1; |
+ return -1 |
} |
if [is_amd64_regs_target] { |
@@ -69,205 +69,218 @@ if [is_amd64_regs_target] { |
# Set tracepoint during tracing experiment. |
-proc tracepoint_change_loc_1 { trace_type } { with_test_prefix "1 $trace_type" { |
- global testfile |
- global srcfile |
- global pcreg |
- global gdb_prompt |
- |
- clean_restart ${testfile} |
- if ![runto_main] { |
- fail "Can't run to main" |
- return -1 |
- } |
- gdb_test_no_output "delete break 1" |
- |
- # Set a tracepoint we'll never meet. Just to avoid the complain after |
- # type `tstart' later. |
- gdb_test "next" ".*" |
- gdb_test "trace main" "Tracepoint \[0-9\] at.* file .*$srcfile, line.*" \ |
- "set tracepoint on main" |
- |
- gdb_test "break marker" "Breakpoint.*at.* file .*$srcfile, line.*" \ |
- "breakpoint on marker" |
- |
- gdb_test_no_output "tstart" |
- |
- gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
- "continue to marker 1" |
- # Set a tracepoint during tracing. |
- set test "set tracepoint on set_tracepoint" |
- gdb_test_multiple "${trace_type} set_tracepoint" $test { |
- -re "Target returns error code .* too far .*$gdb_prompt $" { |
- if [string equal $trace_type "ftrace"] { |
- # The target was unable to install the fast tracepoint |
- # (e.g., jump pad too far from tracepoint). |
- pass "$test (too far)" |
- } else { |
- fail $test |
- } |
+proc tracepoint_change_loc_1 { trace_type } { |
+ with_test_prefix "1 $trace_type" { |
+ global testfile |
+ global srcfile |
+ global pcreg |
+ global gdb_prompt |
+ |
+ clean_restart ${testfile} |
+ if ![runto_main] { |
+ fail "Can't run to main" |
+ return -1 |
} |
- -re "\r\n$gdb_prompt $" { |
- pass $test |
+ gdb_test_no_output "delete break 1" |
+ |
+ # Set a tracepoint we'll never meet. Just to avoid the |
+ # complain after type `tstart' later. |
+ gdb_test "next" ".*" |
+ gdb_test "trace main" \ |
+ "Tracepoint \[0-9\] at.* file .*$srcfile, line.*" \ |
+ "set tracepoint on main" |
+ |
+ gdb_test "break marker" \ |
+ "Breakpoint.*at.* file .*$srcfile, line.*" \ |
+ "breakpoint on marker" |
+ |
+ gdb_test_no_output "tstart" |
+ |
+ gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
+ "continue to marker 1" |
+ # Set a tracepoint during tracing. |
+ set test "set tracepoint on set_tracepoint" |
+ gdb_test_multiple "${trace_type} set_tracepoint" $test { |
+ -re "Target returns error code .* too far .*$gdb_prompt $" { |
+ if [string equal $trace_type "ftrace"] { |
+ # The target was unable to install the fast tracepoint |
+ # (e.g., jump pad too far from tracepoint). |
+ pass "$test (too far)" |
+ } else { |
+ fail $test |
+ } |
+ } |
+ -re "\r\n$gdb_prompt $" { |
+ pass $test |
+ } |
} |
- } |
- gdb_trace_setactions "set action for tracepoint" "" \ |
- "collect \$$pcreg" "^$" |
+ gdb_trace_setactions "set action for tracepoint" "" \ |
+ "collect \$$pcreg" "^$" |
- # tracepoint has two locations after shlib change-loc-1 is loaded. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+ # tracepoint has two locations after shlib change-loc-1 is loaded. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*4\.1.* in func4.*4\.2.* in func4.*" \ |
- "tracepoint with two locations" |
- |
- set test "continue to marker 2" |
- gdb_test_multiple "continue" $test { |
- -re "Target returns error code .* too far .*$gdb_prompt $" { |
- if [string equal $trace_type "ftrace"] { |
- # Expected if the target was unable to install the |
- # fast tracepoint (e.g., jump pad too far from |
- # tracepoint). |
- pass "$test (too far)" |
- # Skip the rest of the tests. |
- return |
- } else { |
- fail "continue to marker 2" |
- fail $test |
- } |
- |
- } |
- -re ".*Breakpoint.*marker.*at.*$srcfile.*$gdb_prompt $" { |
- pass "continue to marker 2" |
- } |
- } |
+ "tracepoint with two locations" |
+ |
+ set test "continue to marker 2" |
+ gdb_test_multiple "continue" $test { |
+ -re "Target returns error code .* too far .*$gdb_prompt $" { |
+ if [string equal $trace_type "ftrace"] { |
+ # Expected if the target was unable to install the |
+ # fast tracepoint (e.g., jump pad too far from |
+ # tracepoint). |
+ pass "$test (too far)" |
+ # Skip the rest of the tests. |
+ return |
+ } else { |
+ fail "continue to marker 2" |
+ fail $test |
+ } |
+ |
+ } |
+ -re ".*Breakpoint.*marker.*at.*$srcfile.*$gdb_prompt $" { |
+ pass "continue to marker 2" |
+ } |
+ } |
- # tracepoint has three locations after shlib change-loc-2 is loaded. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+ # tracepoint has three locations after shlib change-loc-2 is |
+ # loaded. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*4\.1.* in func4.*4\.2.* in func4.*4\.3.* in func4 .*" \ |
- "tracepoint with three locations" |
+ "tracepoint with three locations" |
- gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
- "continue to marker 3" |
+ gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
+ "continue to marker 3" |
- # shlib is unloaded, there are still three locations, but one is pending. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
-\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*4\.1.* in func4.*(4\.2.* in func4.*4\.3.* \<PENDING\>\[\t \]+set_tracepoint|4\.2.* \<PENDING\>\[\t \]+set_tracepoint\r\n4\.3.* in func4).*" \ |
- "tracepoint with two locations (unload)" |
+ # shlib is unloaded, there are still three locations, but one |
+ # is pending. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.* |
+4\.1.* in func4.*\tinstalled on target\r\n(4\.2.* in func4.*\tinstalled on target\r\n4\.3.* \<PENDING\>\[\t \]+set_tracepoint|4\.2.* \<PENDING\>\[\t \]+set_tracepoint.*4\.3.* in func4.*\tinstalled on target).*" \ |
+ "tracepoint with two locations (unload)" |
- gdb_test_no_output "tstop" |
+ gdb_test_no_output "tstop" |
- gdb_test "tfind" "Found trace frame 0, tracepoint 4.*" "tfind frame 0" |
- gdb_test "tfind" "Target failed to find requested trace frame\\..*" |
-}} |
+ gdb_test "tfind" "Found trace frame 0, tracepoint 4.*" \ |
+ "tfind frame 0" |
+ gdb_test "tfind" \ |
+ "Target failed to find requested trace frame\\..*" |
+ } |
+} |
# Set pending tracepoint. |
-proc tracepoint_change_loc_2 { trace_type } { with_test_prefix "2 $trace_type" { |
- global srcdir |
- global srcfile |
- global subdir |
- global pcreg |
- global binfile |
- global gdb_prompt |
- |
- gdb_exit |
- gdb_start |
- gdb_reinitialize_dir $srcdir/$subdir |
- |
- gdb_test_multiple "${trace_type} set_tracepoint" "set pending tracepoint" { |
- -re ".*Make \(|fast \)tracepoint pending.*y or \\\[n\\\]. $" { |
- gdb_test "y" "\(Fast t|T\)racepoint.*set_tracepoint.*pending." "set pending tracepoint" |
+proc tracepoint_change_loc_2 { trace_type } { |
+ with_test_prefix "2 $trace_type" { |
+ global srcdir |
+ global srcfile |
+ global subdir |
+ global pcreg |
+ global binfile |
+ global gdb_prompt |
+ |
+ gdb_exit |
+ gdb_start |
+ gdb_reinitialize_dir $srcdir/$subdir |
+ |
+ gdb_test_multiple "${trace_type} set_tracepoint" "set pending tracepoint" { |
+ -re ".*Make \(|fast \)tracepoint pending.*y or \\\[n\\\]. $" { |
+ gdb_test "y" "\(Fast t|T\)racepoint.*set_tracepoint.*pending." "set pending tracepoint" |
+ } |
} |
- } |
- gdb_trace_setactions "set action for tracepoint" "" \ |
- "collect \$$pcreg" "^$" |
+ gdb_trace_setactions "set action for tracepoint" "" \ |
+ "collect \$$pcreg" "^$" |
- # tracepoint has no location information now. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
-\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*PENDING.*set_tracepoint.*" \ |
- "single pending tracepoint info (without symbols)" |
+ # tracepoint has no location information now. Make sure nothing |
+ # else is displayed. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*PENDING.*set_tracepoint\r\n\[\t \]+collect \\$$pcreg\r" \ |
+ "single pending tracepoint info (without symbols)" |
- gdb_load ${binfile} |
- # tracepoint has one location after executable is loaded. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+ gdb_load ${binfile} |
+ # tracepoint has one location after executable is loaded. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*func4.*" \ |
- "tracepoint with one location" |
+ "tracepoint with one location" |
- set main_bp 0 |
- gdb_test_multiple "break main" "set breakpoint on main" { |
- -re "Breakpoint (\[0-9\]*) at .*, line.*$gdb_prompt $" { |
- set main_bp $expect_out(1,string) |
+ set main_bp 0 |
+ gdb_test_multiple "break main" "set breakpoint on main" { |
+ -re "Breakpoint (\[0-9\]*) at .*, line.*$gdb_prompt $" { |
+ set main_bp $expect_out(1,string) |
+ } |
} |
- } |
- gdb_run_cmd |
+ gdb_run_cmd |
- gdb_test "" \ |
- ".*Breakpoint.*main.*at.*$srcfile.*" \ |
- "run to main" |
- gdb_test_no_output "delete break $main_bp" |
+ gdb_test "" \ |
+ ".*Breakpoint.*main.*at.*$srcfile.*" \ |
+ "run to main" |
+ gdb_test_no_output "delete break $main_bp" |
- # tracepoint has two locations after shlib change-loc-1 is loaded. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+ # tracepoint has two locations after shlib change-loc-1 is loaded. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*1\.1.* in func4.*1\.2.* in func4.*" \ |
- "tracepoint with two locations" |
- |
- gdb_test "break marker" "Breakpoint.*at.* file .*$srcfile, line.*" \ |
- "breakpoint on marker" |
- |
- # tracepoint with two locations will be downloaded and installed. |
- set test "tstart" |
- gdb_test_multiple "tstart" $test { |
- -re "^tstart\r\n$gdb_prompt $" { |
- pass "tstart" |
- } |
- -re "Target returns error code .* too far .*$gdb_prompt $" { |
- if [string equal $trace_type "ftrace"] { |
- # The target was unable to install the fast tracepoint |
- # (e.g., jump pad too far from tracepoint). |
- pass "$test (too far)" |
- # Skip the rest of the tests. |
- return |
- } else { |
- fail $test |
- } |
+ "tracepoint with two locations" |
+ |
+ gdb_test "break marker" "Breakpoint.*at.* file .*$srcfile, line.*" \ |
+ "breakpoint on marker" |
+ |
+ # tracepoint with two locations will be downloaded and installed. |
+ set test "tstart" |
+ gdb_test_multiple "tstart" $test { |
+ -re "^tstart\r\n$gdb_prompt $" { |
+ pass "tstart" |
+ } |
+ -re "Target returns error code .* too far .*$gdb_prompt $" { |
+ if [string equal $trace_type "ftrace"] { |
+ # The target was unable to install the fast tracepoint |
+ # (e.g., jump pad too far from tracepoint). |
+ pass "$test (too far)" |
+ # Skip the rest of the tests. |
+ return |
+ } else { |
+ fail $test |
+ } |
+ } |
} |
- } |
- gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
- "continue to marker 1" |
+ gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
+ "continue to marker 1" |
- gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
- "continue to marker 2" |
+ gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
+ "continue to marker 2" |
- # tracepoint has three locations after shlib change-loc-2 is loaded. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+ # tracepoint has three locations after shlib change-loc-2 is loaded. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*1\.1.* in func4.*1\.2.* in func4.*1\.3.* in func4 .*" \ |
- "tracepoint with three locations" |
+ "tracepoint with three locations" |
- gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
- "continue to marker 3" |
+ gdb_test "continue" ".*Breakpoint.*marker.*at.*$srcfile.*" \ |
+ "continue to marker 3" |
- # shlib is unloaded, there are still three locations, but one is pending. |
- gdb_test "info trace" \ |
- "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
-\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*1\.1.* in func4.*(1\.2.* in func4.*1\.3.* \<PENDING\>\[\t \]+set_tracepoint|1\.2.* \<PENDING\>\[\t \]+set_tracepoint\r\n1\.3.* in func4).*" \ |
- "tracepoint with two locations (unload)" |
+ # shlib is unloaded, there are still three locations, but one is pending. |
+ gdb_test "info trace" \ |
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.* |
+\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.* |
+1\.1.* in func4.*\tinstalled on target\r\n(1\.2.* in func4.*\tinstalled on target\r\n1\.3.* \<PENDING\>\[\t \]+set_tracepoint|1\.2.* \<PENDING\>\[\t \]+set_tracepoint\r\n1\.3.* in func4.*\tinstalled on target).*" \ |
+ "tracepoint with two locations (unload)" |
- gdb_test_no_output "tstop" |
+ gdb_test_no_output "tstop" |
- gdb_test "tfind" "Found trace frame 0, tracepoint 1.*" "tfind frame 0" |
- gdb_test "tfind" "Found trace frame 1, tracepoint 1.*" "tfind frame 1" |
- gdb_test "tfind" "Found trace frame 2, tracepoint 1.*" "tfind frame 2" |
- gdb_test "tfind" "Target failed to find requested trace frame\\..*" |
-}} |
+ gdb_test "tfind" "Found trace frame 0, tracepoint 1.*" "tfind frame 0" |
+ gdb_test "tfind" "Found trace frame 1, tracepoint 1.*" "tfind frame 1" |
+ gdb_test "tfind" "Found trace frame 2, tracepoint 1.*" "tfind frame 2" |
+ gdb_test "tfind" "Target failed to find requested trace frame\\..*" |
+ } |
+} |
tracepoint_change_loc_1 "trace" |
tracepoint_change_loc_2 "trace" |