StackTraces

Base.StackTraces.StackFrameType
StackFrame

スタック情報は実行コンテキストを表し、以下のフィールドを持ちます:

  • 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によって返される実行コンテキストへのポインタの表現。

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

スタックトレースを StackFrame のベクターの形で返します。(デフォルトでは stacktrace は C 関数を返しませんが、これを有効にすることができます。)トレースを指定せずに呼び出すと、stacktrace は最初に backtrace を呼び出します。

source

Base.StackTraces内の以下のメソッドと型はエクスポートされておらず、例えばStackTraces.lookup(ptr)のように呼び出す必要があります。

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

実行コンテキストへのポインタ(通常はbacktraceの呼び出しによって生成される)を指定すると、スタックフレームのコンテキスト情報を検索します。その時点でインライン化されたすべての関数のフレーム情報の配列を返し、最も内側の関数が最初に来ます。

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

StackTraceStackFramesのベクター)と関数名(Symbol)を受け取り、指定された関数名によって指定されたStackFrameStackTraceから削除します(指定された関数の上にあるすべてのフレームも削除します)。主に、返す前にStackTraceから関数のStackTracesを削除するために使用されます。

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

指定された Module からすべての StackFrame を削除した StackTrace を返します。

source