RE: hbreak reads memory

Alexandru-Adrian Oltean <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <VI1PR0401MB2671279AAAF1C68AFEA36DF3F1000@VI1PR0401MB2671.eurprd04.prod.outlook.com>
Hi Don,

I forgot to mention one important thing in my previous email - I'm setting breaks using addresses not symbols. 
So even with this approach I'm still seeing that memory is being accessed. I'm expecting a hbreak on a given 
address to skip that function prologue analysis. 

Here's what I see when activating debug in gdb:
hbreak *0xfff54d64
Sending packet: $mfff54d64,4#36...Ack
Packet received: E01
Hardware assisted breakpoint 3 at 0xfff54d64

Regarding your suggestions, I know for sure that setting memory areas read-only or inaccessible helps. The other
suggestion involving 'set trust-readonly-sections' seems to allow gdb to access memory.  However, I'd avoid 
managing memory zones this way since HW breaks should really not touch memory at all.

Thanks,
Adrian

-----Original Message-----
From: Breazeal, Don [mailto:[email protected]] 
Sent: Thursday, July 28, 2016 12:42 AM
To: Alexandru-Adrian Oltean <[email protected]>; [email protected]
Subject: RE: hbreak reads memory

Adrian,
I think this is due to some function prologue analysis.  You might try setting the breakpoint on an address, e.g. instead of 'hbreak foo' use 'hbreak *foo'.  The breakpoint should then be on the address of the entry point to the function and the memory accesses may be reduced or eliminated.

You might also try 'set trust-readonly-sections' and/or set mem inaccessible-by-default.  Those may or may not help.
--Don

> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On 
> Behalf Of Alexandru-Adrian Oltean
> Sent: Tuesday, July 26, 2016 11:29 PM
> To: [email protected]
> Subject: hbreak reads memory
> 
> Hi everyone,
> 
> I noticed that setting a hardware break using hbreak will trigger a 
> memory access at the address where the breakpoint is supposed to be 
> installed. Can someone explain why is that memory access needed? I'm 
> thinking that we might be in a situation where that memory area is not 
> yet initialized/accessible (maybe MMU not configured yet) and the 
> access corrupts the debugged target.
> 
> Thanks,
> Adrian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.