Gabor Grothendieck wrote:
On Fri, Oct 23, 2009 at 2:52 PM, Duncan Murdoch <murd...@stats.uwo.ca> wrote:
On 10/23/2009 2:49 PM, Andrew Yee wrote:
Thanks everyone for the responses.  As a suggestion, wouldn't it be
useful,
that when you run isdebugged() without any parameters, it would just
report
back the functions that are being flagged for debugging?
Could you give an example of what the answer would look like?  Not all
functions have names, not all names are unique, ...


One could use the formal argument list of the function, i.e. the
output of args, when there is no notion of name since that is always
available.

It would actually be easier to return a copy of the whole function. But this wouldn't tell you how to turn off debugging: for example, if an environment captured a copy of a function with the debugging bit set, then you really need to know where it was found, not just what was found. It's tricky to put together examples of this because debug(f) doesn't act like a normal function, but here's an example showing some of the weird behaviour:

f <- function(x) x^2
debug(f)
g <- f

# now both g and f have the debug bit set. Should both be returned by the "showDebugged" function?

undebug(f)

# that unset both.  Now undebug(g) would give a warning.

debug(f)

# that set both

f <- function(x) x^2

# Now g has it set, but f doesn't.

In this example, I was doing explicit assignments, but if f had been passed as an argument to a function, an implicit assignment would be made to the local variable holding it, and the same sort of behaviour would result. I think this would be very confusing, and not particularly helpful, in lots of cases.

I think Steve's suggestion is really the right way to go: if you're going to be setting lots of debug flags, then keep track of them yourself, and use your records to unset them.
Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to