Runtiming hw watchpoints; Was: Split up Z packet enable/disable cmd

Fernando Nasser fnasser@cygnus.com
Thu Aug 3 11:50:00 GMT 2000


Eli Zaretskii wrote:
> 
> > Date: Thu, 03 Aug 2000 15:24:22 +0000
> > From: Fernando Nasser <fnasser@cygnus.com>
> >
> > > The problem is that the code which is run when the user says "watch
> > > foo" doesn't know how many other watchpoints, and of what kind, will
> > > be needed when the inferior is resumed.  In particular, all kinds of
> > > breakpoints with commands that set, reset, or enable watchpoints may
> > > be lying around; a target may be able to combine several watchpoints
> > > into one, but only under some conditions; etc.  You don't know all
> > > that stuff until it's time to resume, and only the target code knows
> > > the entire truth.
> >
> > The code in breakpoints does collect the necessary information and pass it
> > as arguments to the macro.  We just have to write the appropriate code for
> > each architecture.
> 
> Perhaps we are talking about slightly different things.  Let me try to
> make myself clear.
> 
> >From my experience with hacking around watchpoint-related code in
> go32-nat.c, the question "are there enough resources to set
> watchpoints?" is impossible to answer accurately, without knowing
> *all* the watchpoints and all the hardware breakpoints that GDB will
> want to insert before resuming.  The reason for this is that hardware
> breakpoints and watchpoints consume the same resources (debug
> registers), and OTOH several watchpoints might in some cases use up a
> single debug register (if they watch the same address).
> 

Sorry, I forgot that the macro in my sandbox have an extra parameter.  I did
post something about this one month ago and mentioned this extra parameter.
I can check for the Intel restrictions with that one added.

There is another chip with hardware assisted breakpoints that has a simulator.
Frank Eigler pointed that the simulator can handle an arbitrary number of
simulated hw assisted break/watchpoints. That target dependent code will check
for target_name equal to "sim" and always return true in that case.



-- 
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@cygnus.com
2323 Yonge Street, Suite #300           Tel:  416-482-2661 ext. 311
Toronto, Ontario   M4P 2C9              Fax:  416-482-6299


More information about the Gdb-patches mailing list