StackTraces
Base.StackTraces.StackFrame
— TypeStackFrame
スタック情報は実行コンテキストを表し、以下のフィールドを持ちます:
func::Symbol
実行コンテキストを含む関数の名前。
linfo::Union{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}
実行コンテキストを含むMethodInstanceまたはCodeInfo(見つかった場合)、またはモジュール(マクロ展開用)
file::Symbol
実行コンテキストを含むファイルへのパス。
line::Int
実行コンテキストを含むファイル内の行番号。
from_c::Bool
コードがCからのものであれば真。
inlined::Bool
コードがインラインフレームからのものであれば真。
pointer::UInt64
backtrace
によって返される実行コンテキストへのポインタの表現。
Base.StackTraces.StackTrace
— TypeStackTrace
stacktrace
への呼び出しによって返される便利なエイリアスであるVector{StackFrame}
。
Base.StackTraces.stacktrace
— Functionstacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace
スタックトレースを StackFrame
のベクターの形で返します。(デフォルトでは stacktrace は C 関数を返しませんが、これを有効にすることができます。)トレースを指定せずに呼び出すと、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
)を受け取り、指定された関数名によって指定されたStackFrame
をStackTrace
から削除します(指定された関数の上にあるすべてのフレームも削除します)。主に、返す前にStackTrace
から関数のStackTraces
を削除するために使用されます。
remove_frames!(stack::StackTrace, m::Module)
指定された Module
からすべての StackFrame
を削除した StackTrace
を返します。