صفحة الصنف TracePoint في روبي

من موسوعة حسوب
مراجعة 23:04، 7 نوفمبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>TracePoint</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby 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

ربط الحدث بتبديل الألياف

توابع الصنف العامة (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) خلال الحدث

مصادر