traceback
位于 base
包(package)。 说明
默认情况下,traceback()
打印最后一个未捕获错误的调用堆栈,即导致错误的调用序列。当发生错误且错误消息无法识别时,这非常有用。它还可用于打印当前堆栈或任意调用列表。
.traceback()
现在返回上述调用堆栈(并且 traceback(x, *)
可以被视为打印 .traceback(x)
结果的便捷函数)。
用法
traceback(x = NULL, max.lines = getOption("traceback.max.lines",
getOption("deparse.max.lines", -1L)))
.traceback(x = NULL, max.lines = getOption("traceback.max.lines",
getOption("deparse.max.lines", -1L)))
参数
x |
|
max.lines |
一个数字,每次调用要打印的最大行数。默认无限制。仅当 |
细节
默认显示的是最后一个未捕获错误的堆栈,作为 .Traceback
中的 call
列表存储,traceback
以用户友好的格式打印。调用堆栈始终包含所有函数调用和所有外部函数调用(例如 .Call
):如果正在进行分析,它将包括对某些原始函数的调用。 (包括对内置函数的调用,但不包括对特殊函数的调用。)
通过 try
或 tryCatch
捕获的错误不会生成回溯,因此打印的是最后一个未捕获错误的调用序列,而不一定是最后一个错误的调用序列。
如果x
是数字,则打印当前堆栈,跳过堆栈顶部的x
条目。例如,options(error = function() traceback(3))
将打印错误发生时的堆栈,跳过对 traceback()
和 .traceback()
的调用以及调用它的错误函数。
否则,x
被假定为调用或解析调用的列表或配对列表,并将以相同的方式显示。
.traceback()
以及扩展的 traceback()
可能会触发 call
的解析。对于大型调用来说,这是一项昂贵的操作,因此当此类调用位于调用堆栈上时,建议将 max.lines
设置为合理的值。
值
.traceback()
以列表或配对列表的形式返回解析的调用堆栈最深的调用。可以通过 max.lines
限制从调用中解析的行数。 max.lines
导致输出被截断的调用将获得 "truncated"
属性。
traceback()
以不可见方式格式化、打印并返回 .traceback()
生成的调用堆栈。
警告
.Traceback
的存储位置没有记录,也不可见,并且可能会发生变化。目前 .Traceback
包含 call
作为语言对象。
例子
foo <- function(x) { print(1); bar(2) }
bar <- function(x) { x + a.variable.which.does.not.exist }
## Not run:
foo(2) # gives a strange error
traceback()
## End(Not run)
## 2: bar(2)
## 1: foo(2)
bar
## Ah, this is the culprit ...
## This will print the stack trace at the time of the error.
options(error = function() traceback(3))
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
相关用法
- R tracemem 对象的跟踪复制
- R trace 函数或方法调用的交互式跟踪和调试
- R transform 转换对象,例如 DataFrame
- R try 尝试允许错误恢复的表达式
- R trimws 删除前导/尾随空格
- R taskCallback 添加或删除顶级任务回调
- R toString 将 R 对象转换为字符串或测试字符串
- R tilde 波形符运算符
- R textConnection 文本连接
- R t 矩阵转置
- R table 交叉表和表格创建
- R tempfile 为临时文件创建名称
- R taskCallbackManager 创建R级任务回调管理器
- R typeof 对象的类型
- R taskCallbackNames 查询当前内部顶级任务回调名称
- R timezones 时区
- R tabulate 向量列表
- R tapply 对不规则数组应用函数
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Get and Print Call Stacks。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。