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 都被移除。