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: [RFA-v2] Fix a windows bug if two watchpoints are used

> -----Message d'origine-----
> De?: [mailto:gdb-patches-
>] De la part de Eli Zaretskii
> Envoyé?: Thursday, June 04, 2009 9:12 AM
> À?: Pierre Muller
> Cc?:
> Objet?: Re: [RFA-v2] Fix a windows bug if two watchpoints are used
> > From: "Pierre Muller" <>
> > Cc: <>
> > 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
in i386_stopped_data_address:

      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


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