R: Session Data and Debugging Tools

Session {methods} | R Documentation

## Session Data and Debugging Tools

### Description

The function `sessionData` provides a work-around in R for the absence of a session database (what you get in S with the argument `where=0` to functions such as `get` and `assign`).

The functions `traceOn`, `traceOff` and `browseAll` are debugging tools with roughly similar functionality to `trace`, `untrace` and `browser` as described in the reference. Calling `traceOn` creates a new version of a function with arbitrary code inserted at the beginning of the call and/or on exit. Calling `traceOff` undoes the change. The function `browseAll` is a useful interactive call to insert for tracing. It behaves basically like `debugger`.

Note: use `traceOn` only for testing functions in a library, not for functions defined in the global environment. Because the session data is in position 2 on the search list, the temporary versions stored there will not override functions in the global environment.

A more satisfactory version of these facilities is likely to be provided in the future. Use the current versions but don't write code that depends on them.

### Usage

    sessionData()

    traceOn(what, tracer=browseAll, exit=NULL)

    traceOff(what)

    browseAll()

### Arguments

`what` | The object to be traced or untraced.
`tracer, exit` | The code to use at the entrance or exit trace. Either a function (which will be called with no arguments) or an expression (typically constructed from `link{quote}` or `substitute`) to be evaluated.

### Details

`sessionData`: return the index of the session data in the search list, attaching it if it is not attached

`traceOn`: initialize tracing on calls to function `what`. The function or expression `tracer` is called on entry, and the function or expression `exit` on exit.

`traceOff`: turn off tracing of this function

`browseAll`: browse the current stack of function calls.

Uses the function `debugger` to set up browser calls on the frames. On exit from that function, computation continues after the call to browseAll. Computations done in the frames will have no effect.

### Author(s)

John Chambers

### References

See Programming with Data (John M. Chambers, Springer, 1998) for the equivalent functions.

[Package Contents]