debugger
位于 utils
包(package)。 说明
转储评估环境(帧)并检查转储帧的函数。
用法
dump.frames(dumpto = "last.dump", to.file = FALSE,
include.GlobalEnv = FALSE)
debugger(dump = last.dump)
limitedLabels(value, maxwidth = getOption("width") - 5L)
参数
dumpto |
一个字符串。要转储到的对象或文件的名称。 |
to.file |
合乎逻辑的。垃圾场是否应存放在R对象或文件? |
include.GlobalEnv |
逻辑指示除了 |
dump |
一个R转储对象创建者 |
value |
|
maxwidth |
将 |
细节
要使用post-mortem调试,请设置选项error
调用给dump.frames
。默认情况下,这会转储到R对象last.dump
在工作区中,但可以将其设置为转储到文件(通过调用生成的对象的转储)save
)。转储的对象包含调用堆栈、活动环境和返回的最后一个错误消息geterrmessage
.
当转储到文件时,dumpto
给出转储对象的名称,文件名包含‘.rda” 附加。
可以通过调用 debugger
检查类 "dump.frames"
的转储对象。这将给出错误消息和可供重复选择的环境列表。选择环境后,将复制该环境并从副本中调用browser
。请注意,并非原始帧中的所有信息都可用,例如尚未评估的 Promise 以及任何 ...
参数的内容。
如果安装 dump.frames
作为错误处理程序,则即使在非交互式会话中也会继续执行。请参阅示例了解如何转储然后退出。
limitedLabels(v)
接受 list
调用,其元素可能具有 srcref
属性,并返回一个向量,该向量将这些属性的格式化版本粘贴到元素的格式化版本上,所有最终 strtrim()
med 到 maxwidth
。
值
看不见的NULL
。
注意
应用于闭包的 sys.parent
和 environment
等函数在 debugger
内将无法正常工作。
如果在计算形式参数的默认值时发生错误,调试器将在尝试检查该环境时报告“递归默认参数表示”。
当然post-mortem调试将无法工作,如果R损坏太严重而无法生成和保存转储,例如,如果它已用完工作空间。
例子
## Not run:
options(error = quote(dump.frames("testdump", TRUE)))
f <- function() {
g <- function() stop("test dump.frames")
g()
}
f() # will generate a dump on file "testdump.rda"
options(error = NULL)
## possibly in another R session
load("testdump.rda")
debugger(testdump)
Available environments had calls:
1: f()
2: g()
3: stop("test dump.frames")
Enter an environment number, or 0 to exit
Selection: 1
Browsing in the environment with call:
f()
Called from: debugger.look(ind)
Browse[1]> ls()
[1] "g"
Browse[1]> g
function() stop("test dump.frames")
<environment: 759818>
Browse[1]>
Available environments had calls:
1: f()
2: g()
3: stop("test dump.frames")
Enter an environment number, or 0 to exit
Selection: 0
## A possible setting for non-interactive sessions
options(error = quote({dump.frames(to.file = TRUE); q(status = 1)}))
## End(Not run)
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
browser
了解 Browse
提示符下可用的操作。
options
用于设置error
选项; recover
是一个交互式调试器,其工作方式与 debugger
类似,但在错误发生后立即进行。
相关用法
- R debugcall 调试调用
- R demo R 函数演示
- R download.packages 从类似 CRAN 的存储库下载软件包
- R download.file 从互联网下载文件
- R data 数据集
- R dataentry 用于输入数据的电子表格接口
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
- R RSiteSearch 搜索文档中的关键词或短语
- R glob2rx 将通配符或通配符模式更改为正则表达式
- R getFromNamespace 用于开发命名空间的实用函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Post-Mortem Debugging。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。