[pushed] Don't suppress errors inserting/removing hardware breakpoints in shared libraries.

Message ID 539130AC.2050401@codesourcery.com
State Committed
Headers

Commit Message

Yao Qi June 6, 2014, 3:08 a.m. UTC
  On 06/06/2014 12:01 AM, Pedro Alves wrote:
> Yes, but no need to match by target, we can do like e.g.,
> gdb.base/signull.exp does, and check whether "x /b 0" manages
> to read memory.  If so, then skip the test.  Any sane target with
> an MMU will leave page 0 unmapped, so no need to look for some other
> address.

How about the patch below?
  

Comments

Pedro Alves June 6, 2014, 8:40 a.m. UTC | #1
On 06/06/2014 04:08 AM, Yao Qi wrote:
> On 06/06/2014 12:01 AM, Pedro Alves wrote:
>> Yes, but no need to match by target, we can do like e.g.,
>> gdb.base/signull.exp does, and check whether "x /b 0" manages
>> to read memory.  If so, then skip the test.  Any sane target with
>> an MMU will leave page 0 unmapped, so no need to look for some other
>> address.
> 
> How about the patch below?
> 

OK.  Thanks!
  
Yao Qi June 6, 2014, 8:58 a.m. UTC | #2
On 06/06/2014 04:40 PM, Pedro Alves wrote:
> On 06/06/2014 04:08 AM, Yao Qi wrote:
>> On 06/06/2014 12:01 AM, Pedro Alves wrote:
>>> Yes, but no need to match by target, we can do like e.g.,
>>> gdb.base/signull.exp does, and check whether "x /b 0" manages
>>> to read memory.  If so, then skip the test.  Any sane target with
>>> an MMU will leave page 0 unmapped, so no need to look for some other
>>> address.
>>
>> How about the patch below?
>>
> 
> OK.  Thanks!
> 

Thanks for the review.  Patch is pushed in.
  

Patch

diff --git a/gdb/testsuite/gdb.base/hbreak-unmapped.exp b/gdb/testsuite/gdb.base/hbreak-unmapped.exp
index 5cb655c..95668f2 100644
--- a/gdb/testsuite/gdb.base/hbreak-unmapped.exp
+++ b/gdb/testsuite/gdb.base/hbreak-unmapped.exp
@@ -28,6 +28,16 @@  if ![runto_main] {
     return -1
 }
 
+# If we can read the memory at address 0, skip the test.
+gdb_test_multiple "x 0" "memory at address 0" {
+    -re "0x0:.*Cannot access memory at address 0x0.*$gdb_prompt $" { }
+    -re "0x0:.*Error accessing memory address 0x0.*$gdb_prompt $" { }
+    -re ".*$gdb_prompt $" {
+	untested "Memory at address 0 is readable"
+	return
+    }
+}
+
 delete_breakpoints
 
 # Test whether the target supports hardware breakpoints at all.