[PATCH]: Make Linux use the new unified x86 watchpoint support

Mark Salter msalter@redhat.com
Wed Mar 28 05:10:00 GMT 2001


>>>>> Eli Zaretskii writes:

> On Tue, 27 Mar 2001, Mark Salter wrote:

>> When a read wathcpoint is triggered, the target stops and informs gdb.
>> In breakpoint.c, gdb sees that there are read or access watchpoints set
>> and that the data address reported by the target matches. This causes
>> watchpoint_check() to be called. The problem is that watchpoint_check()
>> will try to  read from the watched data area to see if it changed, but
>> this is done before gdb has removed watchpoints from the target. This
>> causes the target to respond with an error when gdb tries to access the
>> watched area.

> Sorry, I don't understand: why does reading a watched region generate
> an error?  At least in the x86 implementation, watchpoints are set to
> be task-local, so reading the data from GDB, which is another process,
> should not produce any errors.  Am I missing something?

I'm using a remote target which has global hw watchpoints and no OS.
The remote target still has the watchpoints installed when gdb tries
to read the area being watched. I don't know. Maybe the target stub
should take it upon itself to remove the watchpoints before telling
gdb it stopped?

--Mark



More information about the Gdb-patches mailing list