diff options
Diffstat (limited to 'gdb/testsuite/gdb.trace/ftrace.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/ftrace.exp | 135 |
1 files changed, 66 insertions, 69 deletions
diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp index 15ad7e7..0cdbd89 100644 --- a/gdb/testsuite/gdb.trace/ftrace.exp +++ b/gdb/testsuite/gdb.trace/ftrace.exp @@ -84,97 +84,94 @@ proc test_fast_tracepoints {} { gdb_test "print gdb_agent_gdb_trampoline_buffer_error" ".*" "" - if { [istarget "x86_64-*-*"] || [istarget "i\[34567\]86-*-*"] || [is_aarch64_target] } { + gdb_test "ftrace set_point" "Fast tracepoint .*" \ + "fast tracepoint at a long insn" - gdb_test "ftrace set_point" "Fast tracepoint .*" \ - "fast tracepoint at a long insn" + gdb_trace_setactions "collect at set_point: define actions" \ + "" \ + "collect globvar, anarg" "^$" - gdb_trace_setactions "collect at set_point: define actions" \ - "" \ - "collect globvar, anarg" "^$" + # Make a test of shorter fast tracepoints, 32-bit x86 only - # Make a test of shorter fast tracepoints, 32-bit x86 only + if { [istarget "i?86-*-*"] } { - if { [istarget "i?86-*-*"] } { + # A Linux target needs to be able to allocate trampolines in the + # 16-bit range, check mmap_min_addr so we can warn testers. + if { [istarget "i?86-*-linux*"] } { - # A Linux target needs to be able to allocate trampolines in the - # 16-bit range, check mmap_min_addr so we can warn testers. - if { [istarget "i?86-*-linux*"] } { + set minaddr [exec sh -c "cat /proc/sys/vm/mmap_min_addr"] - set minaddr [exec sh -c "cat /proc/sys/vm/mmap_min_addr"] + if { [expr $minaddr > 64512] } { + warning "mmap_min_addr > 64512, fast tracepoint will fail" + warning "do \"sudo sysctl -w vm.mmap_min_addr=32768\" to adjust" + } + } - if { [expr $minaddr > 64512] } { - warning "mmap_min_addr > 64512, fast tracepoint will fail" - warning "do \"sudo sysctl -w vm.mmap_min_addr=32768\" to adjust" - } - } + gdb_test_multiple "ftrace four_byter" "set 4-byte fast tracepoint" { + -re "May not have a fast tracepoint at .*\r\n$gdb_prompt $" { + pass "4-byte fast tracepoint could not be set" + } + -re "Fast tracepoint .*\r\n$gdb_prompt $" { + pass "4-byte fast tracepoint is set" + set fourgood 1 + } + } - gdb_test_multiple "ftrace four_byter" "set 4-byte fast tracepoint" { - -re "May not have a fast tracepoint at .*\r\n$gdb_prompt $" { - pass "4-byte fast tracepoint could not be set" - } - -re "Fast tracepoint .*\r\n$gdb_prompt $" { - pass "4-byte fast tracepoint is set" - set fourgood 1 - } - } + if { $fourgood } { - if { $fourgood } { - - gdb_trace_setactions "collect at four_byter: define actions" \ - "" \ - "collect globvar, anarg" "^$" - } - } - - run_trace_experiment + gdb_trace_setactions "collect at four_byter: define actions" \ + "" \ + "collect globvar, anarg" "^$" + } + } - gdb_test "tfind pc *set_point" "Found trace frame .*" \ - "tfind set_point frame, first time" + run_trace_experiment - setup_kfail "gdb/13808" "x86_64-*-linux*" - gdb_test "print globvar" " = 1" + gdb_test "tfind pc *set_point" "Found trace frame .*" \ + "tfind set_point frame, first time" - gdb_test "tfind pc *set_point" "Found trace frame .*" \ - "tfind set_point frame, second time" + setup_kfail "gdb/13808" "x86_64-*-linux*" + gdb_test "print globvar" " = 1" - setup_kfail "gdb/13808" "x86_64-*-linux*" - gdb_test "print anarg" " = 200" + gdb_test "tfind pc *set_point" "Found trace frame .*" \ + "tfind set_point frame, second time" - gdb_test "tfind start" "Found trace frame .*" \ - "reset tfinding" + setup_kfail "gdb/13808" "x86_64-*-linux*" + gdb_test "print anarg" " = 200" - if { $fourgood } { + gdb_test "tfind start" "Found trace frame .*" \ + "reset tfinding" - gdb_test "tfind pc *four_byter" "Found trace frame .*" \ - "tfind four_byter frame, first time" + if { $fourgood } { - gdb_test "print anarg" " = 101" \ - "look at collected local, first time" + gdb_test "tfind pc *four_byter" "Found trace frame .*" \ + "tfind four_byter frame, first time" - gdb_test "tfind pc *four_byter" "Found trace frame .*" \ - "tfind four_byter frame, second time" + gdb_test "print anarg" " = 101" \ + "look at collected local, first time" - gdb_test "print anarg" " = 201" \ - "look at collected local, second time" + gdb_test "tfind pc *four_byter" "Found trace frame .*" \ + "tfind four_byter frame, second time" - } + gdb_test "print anarg" " = 201" \ + "look at collected local, second time" - # If debugging with the remote target, try force disabling the - # fast tracepoints RSP feature, and confirm fast tracepoints - # can no longer be downloaded. - set test "fast tracepoint could not be downloaded with the feature disabled" - if [gdb_is_target_remote] { - gdb_test "set remote fast-tracepoints-packet off" + } - gdb_test_multiple "tstart" $test { - -re "warning: Target does not support fast tracepoints, downloading .* as regular tracepoint.*\r\n$gdb_prompt $" { - pass $test - } - } - } else { - unsupported $test - } + # If debugging with the remote target, try force disabling the + # fast tracepoints RSP feature, and confirm fast tracepoints + # can no longer be downloaded. + set test "fast tracepoint could not be downloaded with the feature disabled" + if [gdb_is_target_remote] { + gdb_test "set remote fast-tracepoints-packet off" + + gdb_test_multiple "tstart" $test { + -re "warning: Target does not support fast tracepoints, downloading .* as regular tracepoint.*\r\n$gdb_prompt $" { + pass $test + } + } + } else { + unsupported $test } } |