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
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