This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
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.