StackTraces
Base.StackTraces.StackFrame
— TypeStackFrame
Информация о стеке, представляющая контекст выполнения, с следующими полями:
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
.
Base.StackTraces.StackTrace
— TypeStackTrace
Удобное псевдоним для Vector{StackFrame}
; возвращается при вызовах stacktrace
.
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
(также удаляя все фреймы выше указанной функции). В основном используется для удаления функций StackTraces
из StackTrace
перед его возвратом.
remove_frames!(stack::StackTrace, m::Module)
Вернет StackTrace
с удаленными всеми StackFrame
из предоставленного Module
.