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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。