This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: watchpoint troubles
>>>>> "Mark" == Mark Salter <msalter@redhat.com> writes:
>>>>> Paul Koning writes:
>> I'm having all sorts of watchpoint troubles with gdb 5.3 and a
>> remote target. These are things I'm running into as I'm working
>> to improve the implementation of watchpoints in my remote stub.
Mark> ...
>> Without that flag, the first thing that gdb does after the
>> watchpoint entry is to read the address being watched. Needless
>> to say, that causes a watchpoint recursion within the target stub.
>> In the case where HAVE_NONSTEPPABLE_WATCHPOINT is defined, things
>> work because the watchpoint is removed before the memory read
>> request is made.
>> Since gdb normally removes and reinserts watch/break points on
>> every entry, I figured it's gdb's job to do things in the right
>> order. Bad assumption? I can certainly hack up the stub to
>> remove the watchpoints before acting on any memory access requests
>> from gdb, but is that kind of hackery supposed to be done?
Mark> This has come up before:
Mark> http://sources.redhat.com/ml/gdb-patches/2001-03/msg00506.html
Mark> I think the answer is that the stub should disable watchpoints
Mark> anytime the target stops and reenable them when stepping or
Mark> continuing.
Thanks.
I just read that thread and the final message seems to say "gdb can be
fixed to remove the watchpoints before doing the memory read in the
case where HAVE_NONSTEPPABLE_WATCHPOINT is undefined. Yes, I thought
so.
I may do that just to try it. As I mentioned, what I *really* want is
for the case where HAVE_NONSTEPPABLE_WATCHPOINT *is* defined to work
correctly. Right now it doesn't.
paul