StackTraces
Base.StackTraces.StackFrame
— 類型StackFrame
表示執行內容堆疊資訊,包含下列欄位
func::Symbol
包含執行內容的函式名稱。
linfo::Union{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}
包含執行內容的 MethodInstance 或 CodeInfo (如果可以找到),或 Module (用於巨集擴充)
file::Symbol
包含執行內容的檔案路徑。
line::Int
執行內容文字檔中的行號。
from_c::Bool
如果程式碼來自 C,則為 True。
inlined::Bool
如果程式碼來自內嵌框架,則為 True。
pointer::UInt64
執行內容文字檔的指標表示,由
backtrace
傳回。
Base.StackTraces.StackTrace
— 類型StackTrace
Vector{StackFrame}
的別名,提供方便性;由 stacktrace
的呼叫傳回。
Base.StackTraces.stacktrace
— 函式stacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace
傳回 StackFrame
向量形式的堆疊追蹤。(預設 stacktrace 不會傳回 C 函式,但可以啟用此功能。)在未指定追蹤時呼叫,stacktrace
會先呼叫 backtrace
。
Base.StackTraces
中下列方法和類型未匯出,且需要呼叫,例如 StackTraces.lookup(ptr)
。
Base.StackTraces.lookup
— 函式lookup(pointer::Ptr{Cvoid}) -> Vector{StackFrame}
提供執行內容文字檔的指標 (通常由呼叫 backtrace
產生),查詢堆疊框架內容資訊。傳回在該點內嵌的所有函式的框架資訊陣列,最內層的函式最先。
Base.StackTraces.remove_frames!
— 函式remove_frames!(stack::StackTrace, name::Symbol)
取得 StackTrace
(StackFrames
向量) 和函式名稱 (Symbol
),並從 StackTrace
中移除函式名稱指定的 StackFrame
(也會移除指定函式上方所有框架)。主要用於在傳回 StackTrace
之前,從 StackTrace
中移除 StackTraces
函式。
remove_frames!(stack::StackTrace, m::Module)
傳回已移除提供之 Module
中所有 StackFrame
的 StackTrace
。