堆栈跟踪
# '基。StackTraces。StackFrame'-Type
StackFrame
表示执行上下文的堆栈信息,包含以下字段:
-
'func::符号`
包含执行上下文的函数的名称。
-
'linfo::联盟{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}`
包含执行上下文的MethodInstance或CodeInfo对象(如果在搜索期间可用),或模块对象(用于扩展宏)。
-
'文件::符号`
包含执行上下文的文件的路径。
-
'行::Int`
包含执行上下文的文件中的行号。
-
'from_c::Bool`
如果使用来自C的代码,则该值为true。
-
'内联::Bool`
如果使用嵌入帧中的代码,则该值设置为true。
-
'指针::UInt64`
对执行上下文的地址引用的表示由`backtrace’返回。
# '基。StackTraces。stacktrace'-Function
stacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace
返回堆栈跟踪作为`StackFrame`对象的向量(默认情况下,堆栈跟踪不返回C函数,但可以单独启用此功能)。 当调用而不指定跟踪时,'stacktrace’首先调用’backtrace'。
下面列出的方法和类型在’基地。StackTraces’不被导出,它们必须被调用,例如,像这样’StackTraces。查找(ptr)'。
# '基。StackTraces。查找'-Function
lookup(pointer::Ptr{Cvoid}) -> Vector{StackFrame}
对于对执行上下文的给定引用(通常通过调用’backtrace’创建),它通过堆栈帧的上下文信息进行搜索。 返回有关在此阶段嵌入的所有函数的帧的信息数组(最远的内部函数排在第一位)。
# '基。StackTraces。remove_frames!`-Function</no-翻译>
remove_frames!(stack::StackTrace, name::Symbol)
接受’StackTrace'(向量’StackFrames'),以及函数名(符号
),并从`StackTrace`中删除函数名指定的`StackFrame'(指定函数以上的所有帧也被删除)。 它主要用于在返回`StackTrace’之前从`StackTrace`中删除’Stacktrace’函数。
remove_frames!(stack::StackTrace, m::Module)
返回一个’StackTrace',其中从提供的’模块`中删除了所有’stackframes'。