| Index: gdb/testsuite/gdb.trace/pending.exp
|
| diff --git a/gdb/testsuite/gdb.trace/pending.exp b/gdb/testsuite/gdb.trace/pending.exp
|
| index 750c0317c16e2a1b2ae0eaeea60a3117c0cde2a3..b3c90bc93ea91a037c3723b2a503b7bd99d00da6 100644
|
| --- a/gdb/testsuite/gdb.trace/pending.exp
|
| +++ b/gdb/testsuite/gdb.trace/pending.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
|
| @@ -53,112 +53,122 @@ if ![runto_main] {
|
|
|
| if ![gdb_target_supports_trace] {
|
| unsupported "Current target does not support trace"
|
| - return -1;
|
| + return -1
|
| }
|
|
|
| # Verify pending tracepoint is resolved to running to main.
|
|
|
| -proc pending_tracepoint_resolved { trace_type } { with_test_prefix "$trace_type resolved" {
|
| - global srcdir
|
| - global subdir
|
| - global binfile
|
| - global srcfile
|
| - global lib_sl1
|
| -
|
| - # Start with a fresh gdb.
|
| - gdb_exit
|
| - gdb_start
|
| - gdb_reinitialize_dir $srcdir/$subdir
|
| -
|
| - gdb_test_multiple "$trace_type set_point1" "set pending tracepoint" {
|
| - -re ".*Make \(fast |\)tracepoint pending.*y or \\\[n\\\]. $" {
|
| - gdb_test "y" "\(Fast t|T\)racepoint.*set_point1.*pending." \
|
| - "set pending tracepoint (without symbols)"
|
| +proc pending_tracepoint_resolved { trace_type } {
|
| + with_test_prefix "$trace_type resolved" {
|
| + global srcdir
|
| + global subdir
|
| + global binfile
|
| + global srcfile
|
| + global lib_sl1
|
| +
|
| + # Start with a fresh gdb.
|
| + gdb_exit
|
| + gdb_start
|
| + gdb_reinitialize_dir $srcdir/$subdir
|
| +
|
| + gdb_test_multiple "$trace_type set_point1" "set pending tracepoint" {
|
| + -re ".*Make \(fast |\)tracepoint pending.*y or \\\[n\\\]. $" {
|
| + gdb_test "y" "\(Fast t|T\)racepoint.*set_point1.*pending." \
|
| + "set pending tracepoint (without symbols)"
|
| + }
|
| }
|
| - }
|
|
|
| - gdb_test "info trace" \
|
| - "Num Type\[ \]+Disp Enb Address\[ \]+What.*
|
| + gdb_test "info trace" \
|
| + "Num Type\[ \]+Disp Enb Address\[ \]+What.*
|
| \[0-9\]+\[\t \]+\(fast |\)tracepoint\[ \]+keep y.*PENDING.*set_point1.*" \
|
| - "single pending tracepoint info (without symbols)"
|
| + "single pending tracepoint info (without symbols)"
|
|
|
| - gdb_load ${binfile}
|
| + gdb_load ${binfile}
|
|
|
| - gdb_test "break main" "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| - "breakpoint function"
|
| + gdb_test "break main" "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| + "breakpoint function"
|
|
|
| - gdb_run_cmd
|
| - gdb_test "" "Breakpoint 2, main.*"
|
| + gdb_run_cmd
|
| + gdb_test "" "Breakpoint 2, main.*"
|
|
|
| - # Run to main which should resolve a pending tracepoint
|
| - gdb_test "info trace" \
|
| - "Num Type\[ \]+Disp Enb Address\[ \]+What.*
|
| + # Run to main which should resolve a pending tracepoint
|
| + gdb_test "info trace" \
|
| + "Num Type\[ \]+Disp Enb Address\[ \]+What.*
|
| \[0-9\]+\[\t \]+\(fast |\)tracepoint\[ \]+keep y.*pendfunc.*" \
|
| - "single tracepoint info"
|
| -}}
|
| + "single tracepoint info"
|
| + }
|
| +}
|
|
|
| # Verify pending tracepoint is resolved and works as expected.
|
|
|
| -proc pending_tracepoint_works { trace_type } { with_test_prefix "$trace_type works" {
|
| - global executable
|
| - global srcfile
|
| - global lib_sl1
|
| - global gdb_prompt
|
| +proc pending_tracepoint_works { trace_type } {
|
| + with_test_prefix "$trace_type works" {
|
| + global executable
|
| + global srcfile
|
| + global lib_sl1
|
| + global gdb_prompt
|
|
|
| - # Restart with a fresh gdb.
|
| - clean_restart $executable
|
| + # Restart with a fresh gdb.
|
| + clean_restart $executable
|
|
|
| - # Test setting and querying pending tracepoints
|
| + # Test setting and querying pending tracepoints
|
|
|
| - gdb_test_multiple "$trace_type set_point1" "set pending tracepoint" {
|
| - -re ".*Make \(fast |\)tracepoint pending.*y or \\\[n\\\]. $" {
|
| - gdb_test "y" "\(Fast t|T\)racepoint.*set_point1.*pending." "set pending tracepoint"
|
| + gdb_test_multiple "$trace_type set_point1" "set pending tracepoint" {
|
| + -re ".*Make \(fast |\)tracepoint pending.*y or \\\[n\\\]. $" {
|
| + gdb_test "y" \
|
| + "\(Fast t|T\)racepoint.*set_point1.*pending." \
|
| + "set pending tracepoint"
|
| + }
|
| }
|
| - }
|
|
|
| - gdb_test "info trace" \
|
| - "Num Type\[ \]+Disp Enb Address\[ \]+What.*
|
| + gdb_test "info trace" \
|
| + "Num Type\[ \]+Disp Enb Address\[ \]+What.*
|
| \[0-9\]+\[\t \]+\(fast |\)tracepoint\[ \]+keep y.*PENDING.*set_point1.*" \
|
| - "single pending tracepoint info"
|
| + "single pending tracepoint info"
|
|
|
| - # Run to main which should resolve a pending tracepoint
|
| - gdb_test "break main" "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| - "breakpoint function"
|
| - gdb_run_cmd
|
| - gdb_test "" "Breakpoint 2, main.*"
|
| + # Run to main which should resolve a pending tracepoint
|
| + gdb_test "break main" "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| + "breakpoint function"
|
| + gdb_run_cmd
|
| + gdb_test "" "Breakpoint 2, main.*"
|
|
|
| - gdb_test "break marker" "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| - "breakpoint on marker"
|
| + gdb_test "break marker" "Breakpoint.*at.* file .*$srcfile, line.*" \
|
| + "breakpoint on marker"
|
|
|
| - set test "start trace experiment"
|
| - gdb_test_multiple "tstart" $test {
|
| - -re "^tstart\r\n$gdb_prompt $" {
|
| - pass $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)"
|
| - # Skip the rest of the tests.
|
| - return
|
| - } else {
|
| - fail $test
|
| + set test "start trace experiment"
|
| + gdb_test_multiple "tstart" $test {
|
| + -re "^tstart\r\n$gdb_prompt $" {
|
| + pass $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)"
|
| + # Skip the rest of the tests.
|
| + return
|
| + } else {
|
| + fail $test
|
| + }
|
| }
|
| - }
|
|
|
| - }
|
| + }
|
|
|
| - gdb_test "continue" "Continuing.\r\n\r\nBreakpoint.*marker.*at.*$srcfile.*" \
|
| - "continue to marker"
|
| + gdb_test "continue" "Continuing.\r\n\r\nBreakpoint.*marker.*at.*$srcfile.*" \
|
| + "continue to marker"
|
|
|
| - gdb_test "tstop" "\[\r\n\]+" "stop trace experiment"
|
| + gdb_test "tstop" "\[\r\n\]+" "stop trace experiment"
|
|
|
| - gdb_test "tfind start" "#0 .*" "tfind test frame 0"
|
| - gdb_test "tfind" "Found trace frame 1, tracepoint 1.*" "tfind test frame 1"
|
| - gdb_test "tfind" "Found trace frame 2, tracepoint 1.*" "tfind test frame 2"
|
| - gdb_test "tfind" "Target failed to find requested trace frame..*" "tfind test frame"
|
| -}}
|
| + gdb_test "tfind start" "#0 .*" "tfind test frame 0"
|
| + gdb_test "tfind" "Found trace frame 1, tracepoint 1.*" \
|
| + "tfind test frame 1"
|
| + gdb_test "tfind" "Found trace frame 2, tracepoint 1.*" \
|
| + "tfind test frame 2"
|
| + gdb_test "tfind" \
|
| + "Target failed to find requested trace frame..*" \
|
| + "tfind test frame"
|
| + }
|
| +}
|
|
|
| # Verify pending tracepoint is resolved during trace.
|
|
|
|
|