[rfa:breakpoint] Correctly count watchpoints
Andrew Cagney
ac131313@redhat.com
Mon Sep 30 09:34:00 GMT 2002
> On Sun, 29 Sep 2002, Andrew Cagney wrote:
>
>
>> (per earlier post) An expression like:
>>
>> a + b
>>
>> requires two watchpoint resources (&a and &b).
>
>
> What do you mean by ``watchpoint resources''? On a i386, watching &a
> might require much more than a single debug register, depending on a's
> size and alignment.
At this point I'm trying desperatly to not define it :-) Each watch
element / location / value in the watchpoint expression is assumed to
consume one watch resource.
Anyway, the problem you refer to is why I was thinking of re-defining
TARGET_REGION_OK_FOR_HW_WATCHPOINT() so that it returns the number of
watchpoint resources required to watch addr/len. If {&a, sizeof a}
required two registers it could return two.
Such a model is obviously simple and will be sub-optimal in many
situtations. I think its sufficient though.
A more complete model would involve extending/generalizing what Marko
Mlinar has implemented for the opencore:
http://sources.redhat.com/ml/gdb/2002-09/msg00308.html
>> When first creating the
>> watchpoint, gdb correctly counts this as two. However, when GDB goes
>> back to compute the number of watchpoints already used, it does a
>> re-count and treats the above (and any watchpoint expression) as only one.
>>
>> The attached, I belive, fixes this by saving the mem_cnt that was computed.
>
>
> I agree that the count should at least be consistent.
>
>
>> One thing I wonder about though, should ``info breakpoints'' or ``maint
>> info breakpoints'' display this info?
>
>
> Only if it's useful. Could you please make a concrete suggestion as to
> what should be printed about this information?
I think it would be helpful if, at least in maintainer mode, the user
could see how many resources have been allocated to a watchpoint. That
way (as well as letting me check its working :-) the user would be in a
better position to figure out where, exactly, all their watchpoints have
gone.
>> Ok?
>
>
> Fine with me.
(I've a sinking feeling that hardware breakpoints have the same problem
...).
Andrew
More information about the Gdb-patches
mailing list