StackTraces
Base.StackTraces.StackFrame
— TypeStackFrame
Stapelinformationen, die den Ausführungskontext darstellen, mit den folgenden Feldern:
func::Symbol
Der Name der Funktion, die den Ausführungskontext enthält.
linfo::Union{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}
Die MethodInstance oder CodeInfo, die den Ausführungskontext enthält (falls sie gefunden werden konnte), oder Modul (für Makroerweiterungen).
file::Symbol
Der Pfad zur Datei, die den Ausführungskontext enthält.
line::Int
Die Zeilennummer in der Datei, die den Ausführungskontext enthält.
from_c::Bool
Wahr, wenn der Code von C stammt.
inlined::Bool
Wahr, wenn der Code von einem inlined Frame stammt.
pointer::UInt64
Darstellung des Zeigers auf den Ausführungskontext, wie von
backtrace
zurückgegeben.
Base.StackTraces.StackTrace
— TypeStackTrace
Ein Alias für Vector{StackFrame}
, der zur Bequemlichkeit bereitgestellt wird; wird von Aufrufen von stacktrace
zurückgegeben.
Base.StackTraces.stacktrace
— Functionstacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace
Gibt einen Stack-Trace in Form eines Vektors von StackFrame
s zurück. (Standardmäßig gibt stacktrace
keine C-Funktionen zurück, aber dies kann aktiviert werden.) Wenn stacktrace
ohne Angabe eines Traces aufgerufen wird, ruft es zuerst backtrace
auf.
Die folgenden Methoden und Typen in Base.StackTraces
sind nicht exportiert und müssen z.B. als StackTraces.lookup(ptr)
aufgerufen werden.
Base.StackTraces.lookup
— Functionlookup(pointer::Ptr{Cvoid}) -> Vector{StackFrame}
Gibt einen Zeiger auf einen Ausführungskontext (normalerweise erzeugt durch einen Aufruf von backtrace
) an, um Informationen zum Kontext des Stack-Frames zu suchen. Gibt ein Array von Frame-Informationen für alle an diesem Punkt inlineden Funktionen zurück, wobei die innerste Funktion zuerst kommt.
Base.StackTraces.remove_frames!
— Functionremove_frames!(stack::StackTrace, name::Symbol)
Nimmt einen StackTrace
(ein Vektor von StackFrames
) und einen Funktionsnamen (ein Symbol
) und entfernt den StackFrame
, der durch den Funktionsnamen im StackTrace
angegeben ist (entfernt auch alle Frames über der angegebenen Funktion). Wird hauptsächlich verwendet, um StackTraces
-Funktionen aus dem StackTrace
zu entfernen, bevor er zurückgegeben wird.
remove_frames!(stack::StackTrace, m::Module)
Gibt den StackTrace
zurück, bei dem alle StackFrame
s aus dem angegebenen Module
entfernt wurden.