StackTraces
Base.StackTraces.StackFrame — TypeStackFrameمعلومات المكدس تمثل سياق التنفيذ، مع الحقول التالية:
func::Symbolاسم الدالة التي تحتوي على سياق التنفيذ.
linfo::Union{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}الـ MethodInstance أو CodeInfo الذي يحتوي على سياق التنفيذ (إذا كان يمكن العثور عليه)، أو Module (لتوسعات الماكرو).
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إرجاع تتبع المكدس في شكل متجه من StackFrames. (بشكل افتراضي، لا يُرجع 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 مع إزالة جميع StackFrames من Module المقدم.