StackTraces

Base.StackTraces.StackFrameType
StackFrame

Информация о стеке, представляющая контекст выполнения, с следующими полями:

  • func::Symbol

    Имя функции, содержащей контекст выполнения.

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

    Метод или 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, name::Symbol)

Принимает StackTrace (вектор StackFrames) и имя функции (символ Symbol) и удаляет StackFrame, указанный именем функции, из StackTrace (также удаляя все фреймы выше указанной функции). В основном используется для удаления функций StackTraces из StackTrace перед его возвратом.

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

Вернет StackTrace с удаленными всеми StackFrame из предоставленного Module.

source