This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[06/10] watchpoint.exp: Expect "You may have requested too many hardware breakpoints/watchpoints".
- From: Pedro Alves <palves at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Date: Thu, 26 Jan 2012 14:20:36 +0000
- Subject: [06/10] watchpoint.exp: Expect "You may have requested too many hardware breakpoints/watchpoints".
- References: <4F215EE8.4080302@redhat.com>
The big blob test currently always happens to run with hardware watchpoints
disabled. Once we fix that, we start seeing failures on x86_64
GNU/Linux gdbserver. In order to avoid temporarily introducing the
failures in the tree, I'm adjusting the test to copy before making it
run with hardware watchpoints.
2012-01-26 Pedro Alves <palves@redhat.com>
* gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): Expect
"You may have requested too many hardware
breakpoints/watchpoints".
---
gdb/testsuite/gdb.base/watchpoint.exp | 40 +++++++++++++++++++++++++++++++--
1 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp
index 75ca8cc..a7bac05 100644
--- a/gdb/testsuite/gdb.base/watchpoint.exp
+++ b/gdb/testsuite/gdb.base/watchpoint.exp
@@ -770,8 +770,44 @@ proc test_inaccessible_watchpoint {} {
proc test_watchpoint_in_big_blob {} {
global gdb_prompt
- gdb_test "watch buf" ".*atchpoint \[0-9\]+: buf"
- gdb_test "cont" "Continuing.*atchpoint \[0-9\]+: buf\r\n\r\nOld value = .*testte\".*" "watchpoint on buf hit"
+ # On native targets where we do hardware resource accounting, this
+ # may end up as a software watchpoint.
+ set ok 0
+ set test "watch buf"
+ gdb_test_multiple "watch buf" $test {
+ -re "Hardware watchpoint \[0-9\]+: buf.*You may have requested too many hardware breakpoints/watchpoints.*$gdb_prompt $" {
+ # This may happen with remote targets (where we don't do
+ # resource accounting) that support hardware watchpoints,
+ # when breakpoint always-inserted is on. The watchpoint
+ # was too large, for example. If GDB is ever adjusted to
+ # downgrade the watchpoint automatically in this case,
+ # this match should be removed. Note the breakpoint has
+ # been created, and is in the list, so it needs deleting.
+ pass $test
+ }
+ -re ".*atchpoint \[0-9\]+: buf.*$gdb_prompt $" {
+ pass $test
+ set ok 1
+ }
+ }
+
+ if { $ok } {
+ set test "watchpoint on buf hit"
+ gdb_test_multiple "cont" $test {
+ -re "Continuing.*atchpoint \[0-9\]+: buf\r\n\r\nOld value = .*testte\".*$gdb_prompt $" {
+ pass $test
+ }
+ -re "Could not insert hardware breakpoints:.*You may have requested too many hardware breakpoints/watchpoints.*$gdb_prompt $" {
+ # This may happen with remote targets that support
+ # hardware watchpoints. We only find out the
+ # watchpoint was too large, for example, at insert
+ # time. If GDB is ever adjusted to downgrade the
+ # watchpoint automatically in this case, this match
+ # should be removed.
+ pass $test
+ }
+ }
+ }
gdb_test_no_output "delete \$bpnum" "delete watch buf"
}