debug {base} | R Documentation |
Set, unset or query the debugging flag on a function.
debug(fun)
undebug(fun)
isdebugged(fun)
fun |
any interpreted R function. |
When a function flagged for debugging is entered, normal execution is suspended and the body of function is executed one statement at a time. A new browser context is initiated for each step (and the previous one destroyed).
At the debug prompt the user can enter commands or R expressions. The commands are
n
(or just return). Advance to the next step.
c
continue to the end of the current context: e.g. to the end of the loop if within a loop or to the end of the function.
cont
synonym for c
.
where
print a stack trace of all active function calls.
Q
exit the browser and the current evaluation and return to the top-level prompt.
(Leading and trailing whitespace is ignored, except for return).
Anything else entered at the debug prompt is interpreted as an
R expression to be evaluated in the calling environment: in
particular typing an object name will cause the object to be printed,
and ls()
lists the objects in the calling frame. (If you want
to look at an object with a name such as n
, print it explicitly.)
If a function is defined inside a function, single-step though to the
end of its definition, and then call debug
on its name.
In order to debug S4 methods (see Methods
), you
need to use trace
, typically calling browser
,
e.g., as
trace("plot", browser, exit=browser, signature = c("track", "missing"))
browser
, trace
;
traceback
to see the stack after an Error: ...
message; recover
for another debugging approach.