صفحة الصنف TracePoint
في روبي
يوفر الصنف TracePoint وظائف Kernel#set_trace_func
في واجهة برمجية كائنية (Object-Oriented).
يمكننا استخدام المتعقبات (كائن من الصنف TracePoint
) لجمع المعلومات بخصوص الاستثناءات:
trace = TracePoint.new(:raise) do |tp|
p [tp.lineno, tp.event, tp.raised_exception]
end
#=> #<TracePoint:disabled>
trace.enable
#=> false
0 / 0
#=> [5, :raise, #<ZeroDivisionError: divided by 0>]
إذا لم تقم بتحديد نوع الأحداث التي تريد الاستماع إليها، فسوف يشمل المتعقب TracePoint
جميع الأحداث المتاحة.
ملحوظة لا تعتمد على مجموعة الأحداث الحالية، حيث أن هذه القائمة عرضة للتغيير. بدلاً من ذلك، يُنصح بتحديد نوع الأحداث التي تريد استخدامها.
لتصفية الأحداث التي تريد تعقبها، يمكنك تمرير أي من الخيارات التالية كأحداث (events
):
:line
تنفيذ التعليمات البرمجية في سطر جديد
:class
بدء تعريف صنف أو وحدة
:end
إنهاء تعربف صنف أو وحدة
:call
استدعاء تابع من توابع روبي
:return
العودة من تابع من توابع روبي
:c_call
استدعاء روتين (routine) من لغة C
:c_return
العودة من روتين من لغة C
:raise
إطلاق استثناء
:b_call
ربط الحدث ببداية الكتلة البرمجية
:b_return
ربط الحدث بنهاية الكتلة البرمجية
:thread_begin
ربط الحدث ببداية المهمة الفرعية
:thread_end
ربط الحدث ينهاية المهمة الفرعية
:fiber_switch
ربط الحدث بتبديل الألياف
توابع الصنف العامة (Public Class Methods)
التابع new
يُعيد التابع new
متعقباTracePoint
جديدًا، غير متاح افتراضيا.
التابع stat
يُعيد التابع stat
المعلومات الداخلية للمتعقب TracePoint
.
التابع trace
طريقة ملائمة للتابع ::new
، حيث تقوم بتنشيط التعقب تلقائيًا.
التابع binding
يُعيد التابع binding
كائن الربط (generated binding object) الذي تم إنشاؤه من الحدث
التابع callee_id
يُعيد التابع callee_id
اسم الاستدعاء الخاص بالتابع الذي يتم استدعاؤه
التابع defined_class
يُعيد التابع defined_class
صنف أو وحدة التابع الذي يتم استدعاؤه.
التابع disable
يعطل التابع disable
التعقب.
التابع enable
ينشط التابع enable
التعقب.
التابع enabled?
يتحقق التابع enabled?
من الوضع الحالي للتعقب
التابع event
نوع الحدث
التابع inspect
يُعيد التابع inspect
سلسلة نصية تحتوي حالة المتعقب TracePoint
وفق صيغة قابلة للقراءة.
التابع lineno
رقم سطر الحدث
التابع method_id
يعيد التابع method_id
الاسم المعطى ساعة تعريف التابع المُستدعى.
التابع path
مسار الملف الجاري تنفيذه
التابع raised_exception
القيمة من الاستثناء الذي تم إطلاقه في الحدث :raise
التابع return_value
يُعيد التابع return_value
قيمة من الحدث :return
و c_return
و b_return
التابع self
يُعيد التابع self
كائن التعقب (trace object) خلال الحدث