diff options
Diffstat (limited to 'gdb/testsuite/gdb.trace/strace.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/strace.exp | 380 |
1 files changed, 201 insertions, 179 deletions
diff --git a/gdb/testsuite/gdb.trace/strace.exp b/gdb/testsuite/gdb.trace/strace.exp index b330ee9af0f..3f3eb4e907c 100644 --- a/gdb/testsuite/gdb.trace/strace.exp +++ b/gdb/testsuite/gdb.trace/strace.exp @@ -126,223 +126,245 @@ proc strace_remove_socket { action } { } }} -proc strace_info_marker { } { with_test_prefix "info_marker" { - global executable - global gdb_prompt - global libipa - - # Restart with a fresh gdb. - clean_restart $executable - gdb_load_shlibs $libipa - if ![runto_main] { - fail "Can't run to main" - return -1 - } +proc strace_info_marker { } { + with_test_prefix "info_marker" { + global executable + global gdb_prompt + global libipa + + # Restart with a fresh gdb. + clean_restart $executable + gdb_load_shlibs $libipa + if ![runto_main] { + fail "Can't run to main" + return -1 + } - # List the markers in program. They should be disabled. - gdb_test "info static-tracepoint-markers" \ - ".*ust/bar\[\t \]+n\[\t \]+.*ust/bar2\[\t \]+n\[\t \]+.*" + # List the markers in program. They should be disabled. + gdb_test "info static-tracepoint-markers" \ + ".*ust/bar\[\t \]+n\[\t \]+.*ust/bar2\[\t \]+n\[\t \]+.*" - # List all the thread. It is expected to get three threads without - # any errors. - gdb_test_multiple "info threads 3 2 1" "info threads" { - -re "3\[ \t\]+Thread .*2\[ \t\]+Thread .*1\[ \t\]+Thread .*${gdb_prompt} $" { - pass "info threads" + # List all the thread. It is expected to get three threads without + # any errors. + gdb_test_multiple "info threads 3 2 1" "info threads" { + -re "3\[ \t\]+Thread .*2\[ \t\]+Thread .*1\[ \t\]+Thread .*${gdb_prompt} $" { + pass "info threads" + } } - } - # GDB detaches inferior so that the socket file can be removed. - gdb_test_multiple "detach" "detach" { - -re "Detaching .*, process .*${gdb_prompt} $" { - pass "detach" + # GDB detaches inferior so that the socket file can be removed. + gdb_test_multiple "detach" "detach" { + -re "Detaching .*, process .*${gdb_prompt} $" { + pass "detach" + } } } -}} - -proc strace_probe_marker { } { with_test_prefix "probe_marker" { - global executable - global expect_out - global gdb_prompt - global hex - global libipa +} - # Restart with a fresh gdb. - clean_restart $executable - gdb_load_shlibs $libipa - if ![runto_main] { - fail "Can't run to main" - return -1 - } +proc strace_probe_marker { } { + with_test_prefix "probe_marker" { + global executable + global expect_out + global gdb_prompt + global hex + global libipa + + # Restart with a fresh gdb. + clean_restart $executable + gdb_load_shlibs $libipa + if ![runto_main] { + fail "Can't run to main" + return -1 + } - gdb_test "strace -m ust/bar" "Static tracepoint \[0-9\]+ at ${hex}: file.*" - gdb_test "strace -m ust/bar2" "Static tracepoint \[0-9\]+ at ${hex}: file.*" - # Two trace markers should be enabled. - gdb_test "info static-tracepoint-markers" \ - "ust/bar\[\t \]+y\[\t \]+$hex .*ust/bar2\[\t \]+y\[\t \]+$hex.*" + gdb_test "strace -m ust/bar" \ + "Static tracepoint \[0-9\]+ at ${hex}: file.*" + gdb_test "strace -m ust/bar2" \ + "Static tracepoint \[0-9\]+ at ${hex}: file.*" + # Two trace markers should be enabled. + gdb_test "info static-tracepoint-markers" \ + "ust/bar\[\t \]+y\[\t \]+$hex .*ust/bar2\[\t \]+y\[\t \]+$hex.*" - gdb_test "break end" "Breakpoint \[0-9\]+ at.*" + gdb_test "break end" "Breakpoint \[0-9\]+ at.*" - gdb_test_no_output "tstart" - gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" "continue to end" - gdb_test_no_output "tstop" + gdb_test_no_output "tstart" + gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ + "continue to end" + gdb_test_no_output "tstop" - gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0" - gdb_test "tfind" "Found trace frame 1, tracepoint .*" "tfind frame 1" - gdb_test "tfind" "Target failed to find requested trace frame\\..*" -}} + gdb_test "tfind" "Found trace frame 0, tracepoint .*" \ + "tfind frame 0" + gdb_test "tfind" "Found trace frame 1, tracepoint .*" \ + "tfind frame 1" + gdb_test "tfind" \ + "Target failed to find requested trace frame\\..*" + } +} proc strace_trace_on_same_addr { type } { -with_test_prefix "trace_same_addr $type" { - global executable - global expect_out - global gdb_prompt - global hex - global libipa - - # Restart with a fresh gdb. - clean_restart $executable - gdb_load_shlibs $libipa - if ![runto_main] { - fail "Can't run to main" - return -1 - } + with_test_prefix "trace_same_addr $type" { + global executable + global expect_out + global gdb_prompt + global hex + global libipa + + # Restart with a fresh gdb. + clean_restart $executable + gdb_load_shlibs $libipa + if ![runto_main] { + fail "Can't run to main" + return -1 + } - set marker_bar_addr "" - set marker_bar2_addr "" + set marker_bar_addr "" + set marker_bar2_addr "" - # List the markers in program. They should be disabled. - gdb_test_multiple "info static-tracepoint-markers" "info static-tracepoint-markers 1" { - -re ".*ust/bar\[\t \]+n.*${gdb_prompt} $" { - set ignore "" + # List the markers in program. They should be disabled. + gdb_test_multiple "info static-tracepoint-markers" "info static-tracepoint-markers 1" { + -re ".*ust/bar\[\t \]+n.*${gdb_prompt} $" { + set ignore "" - regexp "ust/bar\[\t \]+n\[\t \]+($hex) .*ust/bar2\[\t \]+n\[\t \]+($hex) " \ - "$expect_out(0,string)" ignore marker_bar_addr marker_bar2_addr + regexp "ust/bar\[\t \]+n\[\t \]+($hex) .*ust/bar2\[\t \]+n\[\t \]+($hex) " \ + "$expect_out(0,string)" ignore marker_bar_addr marker_bar2_addr - pass "info static-tracepoint-markers 1" - } - -re ".*${gdb_prompt} $" { - fail "info static-tracepoint-markers 1" + pass "info static-tracepoint-markers 1" + } + -re ".*${gdb_prompt} $" { + fail "info static-tracepoint-markers 1" + } } - } - - gdb_test "strace -m ust/bar" "Static tracepoint \[0-9\]+ at ${hex}: file.*" - gdb_test "strace -m ust/bar2" "Static tracepoint \[0-9\]+ at ${hex}: file.*" - # Two trace markers should be enabled. - gdb_test "info static-tracepoint-markers" \ - "ust/bar\[\t \]+y\[\t \]+$hex .*ust/bar2\[\t \]+y\[\t \]+$hex.*" \ - "info static-tracepoint-markers 2" - # Set breapoints or tracepoints. - set test "${type} on marker bar" - gdb_test_multiple "${type} *${marker_bar_addr}" $test { - -re "\(Fast trace|Trace|Break\)point \[0-9\]+ at ${hex}: file.*\r\n$gdb_prompt $" { - pass $test - } - -re ".*\r\n$gdb_prompt $" { - if [string equal $type "ftrace"] { - # The instruction may be not long enough to set a fast - # tracepoint. Skip the rest of this test. - return -1 - } else { - fail $test + gdb_test "strace -m ust/bar" "Static tracepoint \[0-9\]+ at ${hex}: file.*" + gdb_test "strace -m ust/bar2" "Static tracepoint \[0-9\]+ at ${hex}: file.*" + # Two trace markers should be enabled. + gdb_test "info static-tracepoint-markers" \ + "ust/bar\[\t \]+y\[\t \]+$hex .*ust/bar2\[\t \]+y\[\t \]+$hex.*" \ + "info static-tracepoint-markers 2" + + # Set breapoints or tracepoints. + set test "${type} on marker bar" + gdb_test_multiple "${type} *${marker_bar_addr}" $test { + -re "\(Fast trace|Trace|Break\)point \[0-9\]+ at ${hex}: file.*\r\n$gdb_prompt $" { + pass $test + } + -re ".*\r\n$gdb_prompt $" { + if [string equal $type "ftrace"] { + # The instruction may be not long enough to set a fast + # tracepoint. Skip the rest of this test. + return -1 + } else { + fail $test + } } } - } - set test "${type} on marker bar2" - gdb_test_multiple "${type} *${marker_bar2_addr}" $test { - -re "\(Fast trace|Trace|Break\)point \[0-9\]+ at ${hex}: file.*" { - pass $test - } - -re ".*\r\n$gdb_prompt $" { - if [string equal $type "ftrace"] { - # The instruction may be not long enough to set a fast - # tracepoint. Skip the rest of this test. - return -1 - } else { - fail $test + set test "${type} on marker bar2" + gdb_test_multiple "${type} *${marker_bar2_addr}" $test { + -re "\(Fast trace|Trace|Break\)point \[0-9\]+ at ${hex}: file.*" { + pass $test + } + -re ".*\r\n$gdb_prompt $" { + if [string equal $type "ftrace"] { + # The instruction may be not long enough to set a fast + # tracepoint. Skip the rest of this test. + return -1 + } else { + fail $test + } } } - } - - gdb_test "break end" "Breakpoint \[0-9\]+ at.*" - if [string equal $type "break"] { - gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ - "continue to bar" - gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ - "continue to bar2" - gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ - "continue to end" - } else { - - gdb_test_no_output "tstart" - gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ - "continue to end" - gdb_test_no_output "tstop" - - gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0" - gdb_test "tfind" "Found trace frame 1, tracepoint .*" "tfind frame 1" - gdb_test "tfind" "Found trace frame 2, tracepoint .*" "tfind frame 2" - gdb_test "tfind" "Found trace frame 3, tracepoint .*" "tfind frame 3" - gdb_test "tfind" "Target failed to find requested trace frame\\..*" + gdb_test "break end" "Breakpoint \[0-9\]+ at.*" + + if [string equal $type "break"] { + gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ + "continue to bar" + gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ + "continue to bar2" + gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ + "continue to end" + } else { + + gdb_test_no_output "tstart" + gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ + "continue to end" + gdb_test_no_output "tstop" + + gdb_test "tfind" "Found trace frame 0, tracepoint .*" \ + "tfind frame 0" + gdb_test "tfind" "Found trace frame 1, tracepoint .*" \ + "tfind frame 1" + gdb_test "tfind" "Found trace frame 2, tracepoint .*" \ + "tfind frame 2" + gdb_test "tfind" "Found trace frame 3, tracepoint .*" \ + "tfind frame 3" + gdb_test "tfind" \ + "Target failed to find requested trace frame\\..*" + } } -}} - -proc strace_trace_on_diff_addr { } { with_test_prefix "trace_diff_addr" { - - global executable - global expect_out - global gdb_prompt - global hex - global libipa +} - # Restart with a fresh gdb. - clean_restart $executable - gdb_load_shlibs $libipa - if ![runto_main] { - fail "Can't run to main" - return -1 - } +proc strace_trace_on_diff_addr { } { + with_test_prefix "trace_diff_addr" { + + global executable + global expect_out + global gdb_prompt + global hex + global libipa + + # Restart with a fresh gdb. + clean_restart $executable + gdb_load_shlibs $libipa + if ![runto_main] { + fail "Can't run to main" + return -1 + } - set marker_bar_addr "" - set marker_bar2_addr "" + set marker_bar_addr "" + set marker_bar2_addr "" - # List the markers in program. They should be disabled. - gdb_test_multiple "info static-tracepoint-markers" "info static-tracepoint-markers 1" { - -re ".*ust/bar\[\t \]+n.*${gdb_prompt} $" { - set ignore "" + # List the markers in program. They should be disabled. + gdb_test_multiple "info static-tracepoint-markers" "info static-tracepoint-markers 1" { + -re ".*ust/bar\[\t \]+n.*${gdb_prompt} $" { + set ignore "" - regexp "ust/bar\[\t \]+n\[\t \]+($hex) .*ust/bar2\[\t \]+n\[\t \]+($hex) " \ - "$expect_out(0,string)" ignore marker_bar_addr marker_bar2_addr + regexp "ust/bar\[\t \]+n\[\t \]+($hex) .*ust/bar2\[\t \]+n\[\t \]+($hex) " \ + "$expect_out(0,string)" ignore marker_bar_addr marker_bar2_addr - pass "info static-tracepoint-markers 1" - } - -re ".*${gdb_prompt} $" { - fail "info static-tracepoint-markers 1" + pass "info static-tracepoint-markers 1" + } + -re ".*${gdb_prompt} $" { + fail "info static-tracepoint-markers 1" + } } - } - gdb_test "strace -m ust/bar" "Static tracepoint \[0-9\]+ at ${hex}: file.*" + gdb_test "strace -m ust/bar" "Static tracepoint \[0-9\]+ at ${hex}: file.*" - gdb_test "info static-tracepoint-markers" \ - "ust/bar\[\t \]+y\[\t \]+$hex .*ust/bar2\[\t \]+n\[\t \]+$hex.*" \ - "info static-tracepoint-markers 2" + gdb_test "info static-tracepoint-markers" \ + "ust/bar\[\t \]+y\[\t \]+$hex .*ust/bar2\[\t \]+n\[\t \]+$hex.*" \ + "info static-tracepoint-markers 2" - # Set common tracepoint. - gdb_test "trace *${marker_bar2_addr}" \ - "Tracepoint \[0-9\]+ at ${hex}: file.*" + # Set common tracepoint. + gdb_test "trace *${marker_bar2_addr}" \ + "Tracepoint \[0-9\]+ at ${hex}: file.*" - gdb_test "break end" "Breakpoint \[0-9\]+ at.*" + gdb_test "break end" "Breakpoint \[0-9\]+ at.*" - gdb_test_no_output "tstart" - gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" "continue to end" - gdb_test_no_output "tstop" + gdb_test_no_output "tstart" + gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*" \ + "continue to end" + gdb_test_no_output "tstop" - gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0" - gdb_test "tfind" "Found trace frame 1, tracepoint .*" "tfind frame 1" - gdb_test "tfind" "Target failed to find requested trace frame\\..*" -}} + gdb_test "tfind" "Found trace frame 0, tracepoint .*" \ + "tfind frame 0" + gdb_test "tfind" "Found trace frame 1, tracepoint .*" \ + "tfind frame 1" + gdb_test "tfind" \ + "Target failed to find requested trace frame\\..*" + } +} # Run it on x86/x86_64 linux. if { [istarget "x86_64-*-linux*"] || [istarget "i\[34567\]86-*-linux*"] } { |