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