This is the mail archive of the
mailing list for the GDB project.
RE: [RFA-v2] Fix a windows bug if two watchpoints are used
> -----Message d'origine-----
> De?: email@example.com [mailto:gdb-patches-
> firstname.lastname@example.org] De la part de Eli Zaretskii
> Envoyé?: Thursday, June 04, 2009 9:12 AM
> À?: Pierre Muller
> Cc?: email@example.com
> Objet?: Re: [RFA-v2] Fix a windows bug if two watchpoints are used
> > From: "Pierre Muller" <firstname.lastname@example.org>
> > Cc: <email@example.com>
> > Date: Thu, 4 Jun 2009 08:33:52 +0200
> > Content-Language: en-us
> > Considering the objections to my first patch, I
> > here submit another patch that
> > make i386_stopped_data_address
> > return as soon as one hit is found.
> This part is fine with me.
> > The change in I386_DR_DISABLE is still
> > useful for the second test inside the i386_stopped_data_address
> > function.
> What do we need that for? Does the Intel spec say that these its need
> to be zeroed for disabled debug registers?
> > This patch does fix my windows specific problem.
> Is your problem fixed without the change in I386_DR_DISABLE?
My problem is indeed fixed without that part,
but without my change to I386_DR_DISABLE, the second check
if (I386_DR_WATCH_HIT (i)
/* This second condition makes sure DRi is set up for a data
watchpoint, not a hardware breakpoint. The reason is
that GDB doesn't call the target_stopped_data_address
method except for data watchpoints. In other words, I'm
being paranoiac. */
&& I386_DR_GET_RW_LEN (i) != 0)
is not reliable as the return value of I386_DR_GET_RW_LEN (i)
is non-zero if I was used before... Even if it was disabled