diff options
author | Pedro Alves <palves@redhat.com> | 2011-07-26 19:39:59 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-07-26 19:39:59 +0000 |
commit | efa80663c6860c65971ea1d3e6284c2676074d10 (patch) | |
tree | 7140b58d4636a9ec58c40ae048f27e8b62d0148b | |
parent | ffdd6afc609db5cc7f86bdb2169ff7ad2eb3875f (diff) | |
download | gdb-efa80663c6860c65971ea1d3e6284c2676074d10.zip gdb-efa80663c6860c65971ea1d3e6284c2676074d10.tar.gz gdb-efa80663c6860c65971ea1d3e6284c2676074d10.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/breakpoint.c | 3 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/watchpoint.exp | 19 |
4 files changed, 32 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a0d3606..96f527b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 5afda31..00fe748 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -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 diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1eeeeb2..8011247 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -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 diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp index 1d8c5bc..331b181 100644 --- a/gdb/testsuite/gdb.base/watchpoint.exp +++ b/gdb/testsuite/gdb.base/watchpoint.exp @@ -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 } |