debug                  package:base                  R Documentation

Debug a Function

Description:

     Set or unset the debugging flag on a function.

Usage:

     debug(fun)
     undebug(fun)

Arguments:

     fun: any interpreted R function.

Details:

     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"))'

See Also:

     'browser', 'trace'; 'traceback' to see the stack after an 'Error:
     ...' message; 'recover' for another debugging approach.

