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 傳回。

source
Base.StackTraces.stacktrace函式
stacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace

傳回 StackFrame 向量形式的堆疊追蹤。(預設 stacktrace 不會傳回 C 函式,但可以啟用此功能。)在未指定追蹤時呼叫,stacktrace 會先呼叫 backtrace

source

Base.StackTraces 中下列方法和類型未匯出,且需要呼叫,例如 StackTraces.lookup(ptr)

Base.StackTraces.lookup函式
lookup(pointer::Ptr{Cvoid}) -> Vector{StackFrame}

提供執行內容文字檔的指標 (通常由呼叫 backtrace 產生),查詢堆疊框架內容資訊。傳回在該點內嵌的所有函式的框架資訊陣列,最內層的函式最先。

source
Base.StackTraces.remove_frames!函式
remove_frames!(stack::StackTrace, name::Symbol)

取得 StackTrace (StackFrames 向量) 和函式名稱 (Symbol),並從 StackTrace 中移除函式名稱指定的 StackFrame (也會移除指定函式上方所有框架)。主要用於在傳回 StackTrace 之前,從 StackTrace 中移除 StackTraces 函式。

source
remove_frames!(stack::StackTrace, m::Module)

傳回已移除提供之 Module 中所有 StackFrameStackTrace

source