StackTraces

Base.StackTraces.StackFrameType
StackFrame

実行コンテキストを表すスタック情報で、以下のフィールドがあります:

  • func::Symbol

    実行コンテキストを含む関数の名前。

  • linfo::Union{Method, Core.MethodInstance, Core.CodeInstance, Core.CodeInfo, Nothing}

    実行コンテキストを含むMethod、MethodInstance、CodeInstance、またはCodeInfo(見つかった場合)、または何もない(例えば、インライン化がマクロ展開の結果であった場合)。

  • file::Symbol

    実行コンテキストを含むファイルへのパス。

  • line::Int

    実行コンテキストを含むファイルの行番号。

  • from_c::Bool

    コードがCからのものである場合は真。

  • inlined::Bool

    コードがインラインフレームからのものである場合は真。

  • pointer::UInt64

    backtraceによって返される実行コンテキストへのポインタの表現。

source
Base.StackTraces.StackTraceType
StackTrace

便利のために提供される Vector{StackFrame} のエイリアスであり、stacktrace への呼び出しによって返されます。

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, m::Module)

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

source
remove_frames!(stack::StackTrace, name::Symbol)

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

source