2011-07-26 Pedro Alves <pedro@codesourcery.com>

gdb/
	* breakpoint.c (works_in_software_mode_watchpoint): Also return
	true for software watchpoints.

	gdb/testsuite/
	* gdb.base/watchpoint.exp
	(test_disable_enable_software_watchpoint): New procedure.
	(top level): Run it.
This commit is contained in:
Pedro Alves 2011-07-26 19:39:59 +00:00
parent ffdd6afc60
commit efa80663c6
4 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-07-26 Pedro Alves <pedro@codesourcery.com>
* breakpoint.c (works_in_software_mode_watchpoint): Also return
true for software watchpoints.
2011-07-26 Joel Brobecker <brobecker@adacore.com>
GDB 7.3 released.

View File

@ -8637,7 +8637,8 @@ resources_needed_watchpoint (const struct bp_location *bl)
static int
works_in_software_mode_watchpoint (const struct breakpoint *b)
{
return b->type == bp_hardware_watchpoint;
/* Read and access watchpoints only work with hardware support. */
return b->type == bp_watchpoint || b->type == bp_hardware_watchpoint;
}
static enum print_stop_action

View File

@ -1,3 +1,9 @@
2011-07-26 Pedro Alves <pedro@codesourcery.com>
* gdb.base/watchpoint.exp
(test_disable_enable_software_watchpoint): New procedure.
(top level): Run it.
2011-07-26 Ulrich Weigand <ulrich.weigand@linaro.org>
* gdb.python/py-mi.exp: Avoid '+' in filenames. Call C version of

View File

@ -630,6 +630,23 @@ proc test_constant_watchpoint {} {
gdb_test_no_output "delete \$bpnum" "delete watchpoint `7 + count'"
}
proc test_disable_enable_software_watchpoint {} {
# This is regression test for a bug that caused `enable' to fail
# for software watchpoints.
# Watch something not memory to force a software watchpoint.
gdb_test {watch $pc} ".*atchpoint \[0-9\]+: .pc"
gdb_test_no_output "disable \$bpnum" "disable watchpoint `\$pc'"
gdb_test_no_output "enable \$bpnum" "reenable watchpoint `\$pc'"
gdb_test "info watchpoint \$bpnum" \
".*watchpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+.pc.*" \
"watchpoint `\$pc' is enabled"
gdb_test_no_output "delete \$bpnum" "delete watchpoint `\$pc'"
}
proc test_watch_location {} {
gdb_breakpoint [gdb_get_line_number "func5 breakpoint here"]
gdb_continue_to_breakpoint "func5 breakpoint here"
@ -903,6 +920,8 @@ if [initialize] then {
test_constant_watchpoint
test_disable_enable_software_watchpoint
test_watch_location
}