StackTraces
Base.StackTraces.StackFrame
— TypeStackFrame
堆栈信息表示执行上下文,具有以下字段:
func::Symbol
包含执行上下文的函数名称。
linfo::Union{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}
包含执行上下文的MethodInstance或CodeInfo(如果可以找到),或Module(用于宏扩展)。
file::Symbol
包含执行上下文的文件路径。
line::Int
包含执行上下文的文件中的行号。
from_c::Bool
如果代码来自C,则为真。
inlined::Bool
如果代码来自内联帧,则为真。
pointer::UInt64
作为
backtrace
返回的执行上下文指针的表示。
Base.StackTraces.StackTrace
— TypeStackTrace
为方便起见,Vector{StackFrame}
的别名;由对 stacktrace
的调用返回。
Base.StackTraces.stacktrace
— Functionstacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace
返回一个以 StackFrame
形式的堆栈跟踪向量。(默认情况下,stacktrace 不返回 C 函数,但可以启用此功能。)当不指定 trace 调用时,stacktrace
首先调用 backtrace
。
以下在 Base.StackTraces
中的方法和类型未被导出,需要以 StackTraces.lookup(ptr)
的形式调用。
Base.StackTraces.lookup
— Functionlookup(pointer::Ptr{Cvoid}) -> Vector{StackFrame}
给定一个指向执行上下文的指针(通常由对 backtrace
的调用生成),查找堆栈帧上下文信息。返回一个数组,其中包含在该点内联的所有函数的帧信息,最内层的函数优先。
Base.StackTraces.remove_frames!
— Functionremove_frames!(stack::StackTrace, name::Symbol)
接受一个 StackTrace
(一个 StackFrames
的向量)和一个函数名(一个 Symbol
),并从 StackTrace
中移除由函数名指定的 StackFrame
(同时移除指定函数之上的所有帧)。主要用于在返回之前从 StackTrace
中移除 StackTraces
函数。
remove_frames!(stack::StackTrace, m::Module)
返回 StackTrace
,其中所有来自提供的 Module
的 StackFrame
都被移除。