صفحة الصنف 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>]
الأحداث (Events)
إذا لم تقم بتحديد نوع الأحداث التي تريد الاستماع إليها، فسوف يشمل المتعقب 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
- ربط الحدث بتبديل (switch) الألياف
توابع الصنف العامة (Public Class Methods)
التابع new
يُعيد التابع new
متعقبا جديدًا.
التابع stat
يُعيد التابع stat
المعلومات الداخلية للمتعقب.
التابع trace
ملائم لللتابع new
، حيث يقوم بتنشيط التعقب تلقائيًا.
توابع النسخة العامة (Public Instance Methods)
التابع binding
يُعيد التابع binding
كائن الربط (generated binding object) الذي تم إنشاؤه من الحدث
التابع callee_id
يُعيد التابع callee_id
اسم الاستدعاء الخاص بالتابع الذي يتم استدعاؤه
التابع defined_class
يُعيد التابع defined_class
صنف أو وحدة التابع المستدعى.
التابع disable
يعطل التابع disable
التعقب.
التابع enable
ينشط التابع enable
التعقب.
التابع enabled?
يتحقق التابع enabled?
من الوضع الحالي للتعقب
التابع event
يعيد نوع الحدث
التابع inspect
يُعيد التابع inspect
سلسلة نصية تحتوي حالة المتعقب وفق صيغة قابلة للقراءة.
التابع lineno
يعيد رقم سطر الحدث
التابع method_id
يعيد method_id
الاسم المعطى ساعة تعريف التابع المُستدعى.
التابع path
يعيد مسار الملف الجاري تنفيذه
التابع raised_exception
يعيد قيمة الاستثناء الذي تم إطلاقه في الحدث :raise
التابع return_value
يُعيد التابع return_value
قيمة الحدث :return
و c_return
و b_return
التابع self
يُعيد التابع self
كائن التعقب (trace object)