traceback
Print Call Stack After Error
Description
Prints the calls in the process of evaluation at the time of
an error, or prints any list of deparsed calls.
Usage
traceback(x = NULL, max.lines = getOption("deparse.max.lines"),
print.context = TRUE)
Arguments
x |
any list of calls.
If NULL (the default), then the saved call stack from the most
recent error is used.
A numeric x is treated the same as NULL.
|
max.lines |
the maximum number of lines to be printed for each call.
If this is NULL or any other non-numeric value,
a maximum of 10 lines are printed.
|
print.context |
a logical flag.
If TRUE (the default)
and the engine has saved additional context information with the call stack,
it is printed to the screen
instead of the x value or the normal saved call stack.
Context information is available only when starting the engine
with the -debug flag.
Set this argument to FALSE to ignore any context information.
|
Details
Use traceback when an error occurs that you do not understand.
traceback reports the function that created the error and the
calling sequence that led to the function call. If this information is
not sufficient to discover the cause of the error, then use
debugger, browser, or trace.
When you use browser, also using traceback()
can help you determine how browser was called. This is
particularly true when browser is invoked as a result
of an interrupt or tracing action.
Two techniques useful for preventing errors during loops, or for
preventing other long calculations from losing all intermediate
results are:
- Saving intermediate results using assign.
- Trapping errors using try.
Differences between Spotfire Enterprise Runtime for R and Open-source R
If the max.lines argument is NULL or any other
non-numeric value, open-source R prints all of the lines,
whereas Spotfire Enterprise Runtime for R prints only a maximum of 10 lines.
The print.context argument is in Spotfire Enterprise Runtime for R only; it is not in open-source R.
See Also
Examples
f1 <- function(x) { y <- x+4; f2(y)}
f2 <- function(x) undefined.variable + x
f1(5)
traceback()
x <- c(2.36, 0.89, -0.25, -0.86, 0.58)
y <- c(0.67, 0.094, 0.49, 0.46, 0.37)
traceback(x) # print x list of deparsed calls
glm(y~x, family = quasi(link = power(2))) # generate an error
traceback() # print the call stack with error information
traceback(max.lines = 3)
# print the call stack with error information,
# the lines for each call is no more than 3.