This is the mail archive of the 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: [RFC/RFA] Add hardware watchpoint support for cygwin target.

At 20:13 28/11/01 +0200, Eli Zaretskii wrote:
>> Date: Wed, 28 Nov 2001 18:44:44 +0100
>> From: Pierre Muller <>
>> But te are some annoying things,
>> the most annoying is that an exception seems to be generated
>> on read access of the watched area even if you only set a normal
>> watchpoint (which should use a write-only debug feature).
>So you are saying that watch, rwatch, and awatch all yield the same
>Are you sure that you pass the watchpoint information correctly to
>the OS?  For example, is the format of DR7 as the OS wants it
>identical to what GDB uses?  The layout of bits in dr_control_mirror
>follows Intel documentation, but the OS might want those bits in a
>different format (that's what the corresponding DPMI call does, for
>example).  I don't have Windows docs, so I cannot check this.

There is nothing available, (or at least I didn't find anything)
about i386 debug registers for the win32 API.
If you look at my patch, you will see that I simply do a straight
copy of the content of the i386-nat mirror registers into 
the DrX registers of the CONTEXT structure.
>> > /* Get the value of the DR6 debug status register from the inferior.
>> >    Here we just return the value stored in D_REGS, as we've got it
>> >    from the last go32_wait call.  */
>I believe you didn't really mean ``go32_wait'' here ;-)

 Yes, as you probably noticed... it directly taken from the go32-nat code...
I will fix this!

 Concerning Christopher's worry as to 
if this is a bug in the implementation or
in the OS handling, I have no idea, and its the reason
of the RFC...
  After some debugging, I think that the problem
arrises at some hidden stops (causes by events like DLL loading)
that do call to new_symfile_objfile,
that does call breakpoint_re_set
that finally calls breakpoint_re_set_one for each enabled
break or watch point.
And here appears the unwanted GDB message...

Does this mean that uiout should be temporarily redirected toward nul device
as is already done for other functions within cygwin native code?
Or should it really be considered as an error in breakpoint...

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