diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/watchpoint.exp | 76 |
2 files changed, 46 insertions, 36 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 7f1776e..218cfe0 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2012-01-27 Pedro Alves <palves@redhat.com> + * gdb.base/watchpoint.exp (test_no_hw_watchpoints): New, factored + out from the top level. + (top level): Call it instead. + +2012-01-27 Pedro Alves <palves@redhat.com> + * gdb.base/watchpoint.exp (top level): Re-enable hardware watchpoints sooner. diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp index a3d5234..54e21c3 100644 --- a/gdb/testsuite/gdb.base/watchpoint.exp +++ b/gdb/testsuite/gdb.base/watchpoint.exp @@ -765,7 +765,45 @@ proc test_inaccessible_watchpoint {} { gdb_test_no_output "delete \$global_ptr_ptr_breakpoint_number" } } - + +proc test_no_hw_watchpoints {} { + maybe_clean_restart + + # Verify that a user can force GDB to use "slow" watchpoints. + # (This proves rather little on kernels that don't support + # fast watchpoints, but still...) + # + if ![runto_main] then { fail "watch tests suppressed" } + + gdb_test_no_output "set can-use-hw-watchpoints 0" "disable fast watches" + + gdb_test "show can-use-hw-watchpoints" \ + "Debugger's willingness to use watchpoint hardware is 0." \ + "show disable fast watches" + + gdb_test "watch ival3 if count > 1" \ + "Watchpoint \[0-9\]*: ival3.*" \ + "set slow conditional watch" + + gdb_test "continue" \ + "Watchpoint \[0-9\]*: ival3.*Old value = 1.*New value = 2.*" \ + "trigger slow conditional watch" + + gdb_test_no_output "delete \$bpnum" "delete watch ival3" + + # We've explicitly disabled hardware watches. Verify that GDB + # refrains from using them. + # + gdb_test "rwatch ival3" \ + "Expression cannot be implemented with read/access watchpoint..*" \ + "rwatch disallowed when can-set-hw-watchpoints cleared" + + # Re-enable hardware watchpoints if necessary. + if ![target_info exists gdb,no_hardware_watchpoints] { + gdb_test_no_output "set can-use-hw-watchpoints 1" "" + } +} + proc test_watchpoint_in_big_blob {} { global gdb_prompt @@ -844,41 +882,7 @@ if [initialize] then { test_inaccessible_watchpoint - maybe_clean_restart - - # Verify that a user can force GDB to use "slow" watchpoints. - # (This proves rather little on kernels that don't support - # fast watchpoints, but still...) - # - if ![runto_main] then { fail "watch tests suppressed" } - - gdb_test_no_output "set can-use-hw-watchpoints 0" "disable fast watches" - - gdb_test "show can-use-hw-watchpoints" \ - "Debugger's willingness to use watchpoint hardware is 0." \ - "show disable fast watches" - - gdb_test "watch ival3 if count > 1" \ - "Watchpoint \[0-9\]*: ival3.*" \ - "set slow conditional watch" - - gdb_test "continue" \ - "Watchpoint \[0-9\]*: ival3.*Old value = 1.*New value = 2.*" \ - "trigger slow conditional watch" - - gdb_test_no_output "delete \$bpnum" "delete watch ival3" - - # We've explicitly disabled hardware watches. Verify that GDB - # refrains from using them. - # - gdb_test "rwatch ival3" \ - "Expression cannot be implemented with read/access watchpoint..*" \ - "rwatch disallowed when can-set-hw-watchpoints cleared" - - # Re-enable hardware watchpoints if necessary. - if ![target_info exists gdb,no_hardware_watchpoints] { - gdb_test_no_output "set can-use-hw-watchpoints 1" "" - } + test_no_hw_watchpoints test_watchpoint_and_breakpoint |