debug
位于 base
包(package)。 说明
设置、取消设置或查询函数的调试标志。 text
和 condition
参数与通过调用 browser
提供的参数相同。一旦进入浏览器,用户就可以检索它们,并提供一种机制来允许用户识别哪个断点已被激活。
用法
debug(fun, text = "", condition = NULL, signature = NULL)
debugonce(fun, text = "", condition = NULL, signature = NULL)
undebug(fun, signature = NULL)
isdebugged(fun, signature = NULL)
debuggingState(on = NULL)
参数
fun |
任何解释的R函数。 |
text |
输入浏览器时可以检索的文本字符串。 |
condition |
输入浏览器时可以检索的条件。 |
signature |
可选的方法签名。如果指定,则将调试该方法,而不是其泛型。 |
on |
逻辑性;如果全局打开调试,则对支持函数 |
细节
当进入一个标记为调试的函数时,正常执行将被暂停,函数体一次执行一个语句。每个步骤都会启动一个新的 browser
上下文(并且前一个步骤会被销毁)。
在调试提示符下,用户可以输入命令或R表达式,后跟换行符。这些命令的说明见browser
帮助主题。
要调试在另一个函数内定义的函数,请从 single-step 一直到其定义的末尾,然后在其名称上调用 debug
。
如果要调试不是从头开始的函数,请使用 trace(..., at = *)
或 setBreakpoint
。
使用 debug
是持久的,除非关闭调试,否则每次调用都会进入调试器(请注意,如果删除并替换该函数,则不会保留调试状态)。仅在下次调用该函数时才使用debugonce()
进入调试器。
要通过显式签名调试 S4 方法,请使用 signature
。当指定时,签名指示要调试的fun
的方法。请注意,在这种情况下,调试的实现方式略有不同,因为它使用跟踪机制,而不是调试位。因此,text
和 condition
不能与非空 signature
组合指定。对于实现 .local
重新匹配机制的方法,.local
闭包本身是最终要调试的闭包(请参阅 isRematched
)。
isdebugged
返回 TRUE
,如果 a) signature
是 NULL
并且闭包 fun
已被调试,或者 b) signature
不是 NULL
、fun
是 S4 泛型,并且该方法该签名的 fun
已被调试。在所有其他情况下,它返回 FALSE
。
当输入函数进行调试时,可以通过设置 options(deparse.max.lines)
来限制为解析调用打印的行数。
当在字节编译函数上启用调试时,将使用该函数的解释版本,直到禁用调试为止。
值
debug
和 undebug
无形地返回 NULL
。
如果函数或方法是,isdebugged
返回TRUE
标记为调试,否则标记为FALSE
。
例子
## Not run:
debug(library)
library(methods)
## End(Not run)
## Not run:
debugonce(sample)
## only the first call will be debugged
sampe(10, 1)
sample(10, 1)
## End(Not run)
也可以看看
debugcall
用于方便的调试方法,browser
尤其是其 ‘commands’、trace
; traceback
查看 Error: ...
消息后的堆栈; recover
另一种调试方法。
相关用法
- R deparse 表达式解析
- R deparseOpts 表达式解析选项
- R delayedAssign 延迟评估和承诺
- R det 计算矩阵的行列式
- R detach 从搜索路径中分离对象
- R dump R 对象的文本表示
- R diag 矩阵对角线
- R dots ...、..1 等在函数中使用
- R do.call 执行函数调用
- R dcf 以 DCF 格式读写数据
- R data.class 对象类
- R dimnames 对象的暗名称
- R dyn.load 对外函数接口
- R diff 滞后差异
- R dput 将对象写入文件或重新创建它
- R duplicated 确定重复元素
- R dim 物体的尺寸
- R dontCheck 抑制检查的身份函数
- R drop 删除冗余盘区信息
- R difftime 时间间隔/差异
- R data.frame DataFrame
- R double 双精度向量
- R data.matrix 将 DataFrame 转换为数字矩阵
- R date 系统日期和时间
- R droplevels 删除因子中未使用的级别
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Debug a Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。