This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem with can_use_hw_breakpoint


> From: Jeremy Bennett <jeremy.bennett@embecosm.com>
> Date: Sat, 09 Aug 2008 13:03:06 +0100
> 
> This function is called in response to watch, rwatch, awatch or hbreak
> commands. My architecture can support up to 4 hardware watchpoints.
> Consider the sequence
> 
> awatch a (watchpoint 1)
> awatch b (watchpoint 2)
> rwatch c (watchpoint 3)
> rwatch d (watchpoint 4)
> rwatch e
> 
> rwatch e should fail (5th request), but all I know from the call to
> can_use_hw_breakpoint() is that 3 of this type are requested and that
> some other type of watchpoint (but not how many) has previously been
> requested.

You say above that your architecture supports up to 4 hardware
watchpoints.  Given that, isn't it enough to simply add 3+1 and
compare that to 4?

> Ideally I would like can_use_hw_breakpoint to supply me with an array
> with the counts of all types of HW breakpoint/watchpoint requested, so I
> could determine the total resource currently required.

What are the exact limitations of your architecture?  Do they depend
on the types of the watchpoints, and if so, how?

> In the absence of this, can anyone suggest a reasonably simple solution.

Take a look at i386-nat.c: it maintains a mirror of the hardware
watchpoints related resources, and consults them for both allowing
multiple watchpoints that watch the same addresses, and for deciding
when another watchpoint cannot be defined.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]