[Rd] RE: [R] debugging non-visible functions

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Oct 13 16:52:23 CEST 2004


On Wed, 13 Oct 2004, Liaw, Andy wrote:

> > From: Duncan Murdoch 
> [snip]
> > For 2.1.0, would it be reasonable to extend debug() the way ? was
> > extended?  E.g. allow
> > 
> > debug(plot(x))
> > 
> > and have the debugging flag be set on the appropriate function,
> > whatever and wherever it happens to be?  There's some ambiguity with
> > S3 methods (did you want to debug the generic or the method?), but I
> > think defaulting to debugging of the method would be reasonable.  (And
> > I think ? needs to be extended to handle S3 methods too, but that's a
> > different question.)
> > 
> > Duncan Murdoch
> 
> The ambiguity could be quite real.  I have a formula method that just does
> preprocessing, then call the default method.  What do the debugger do then?
> I've run into situations that I wanted to debug both of them, but not at the
> same time.  I just do what Gabor had suggested: debug(namespace:::function).
> Works for me.

However that's not actually the function used for an S3 method.  

1) You can alter namespace:::function and leave the registered method
unchanged, and v.v., although we try not to make it easy for you.

2) In any case, the registered method for predict() of class "foo" need
not be namespace:::predict.foo, but might be predictFoo, say.  (And you 
cannot _easily_ find out.)

Trace is another problem child in namespaces: see PR#7091 on R-bugs.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list