التابع set_trace_func‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب
< Ruby‏ | Kernel
مراجعة 12:40، 16 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يجعل التابع set_trace_func المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي nil.

ملاحظة: أصبح هذا التابع مهملًا، لذا يُرجى استخدام التابع TracePoint بدلاً منه.

يقبل proc ستة معاملات هي:

  • اسم حدث
  • اسم ملف
  • رقم سطر
  • معرف كائن (object id)
  • كائن ربط (binding)
  • اسم صنف

يستدعى proc كلما وقع حدث. الأحداث هي:

الحدث الوصف
c-call استدعاء برنامج فرعي في لغة C.
c-return العودة من برنامج فرعي في لغة C.
call استدعاء تابع من توابع روبي.
class بدء تعريف صنف أو وحدة.
end إنهاء بدء تعريف صنف أو وحدة.
line تنفيذ كود برمجي في سطر جديد.
raise إطلاق استثناء.
return العودة من توابع روبي.

يتم تعطيل التعقب في سياق proc.

  class Test
  def test
    a = 1
    b = 2
  end
  end
  set_trace_func proc { |event, file, line, id, binding, classname|
     printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
  }
  t = Test.new
  t.test
    line prog.rb:11               false
  c-call prog.rb:11        new    Class
  c-call prog.rb:11 initialize   Object
c-return prog.rb:11 initialize   Object
c-return prog.rb:11        new    Class
    line prog.rb:12               false
    call prog.rb:2        test     Test
    line prog.rb:3        test     Test
    line prog.rb:4        test     Test
  return prog.rb:4        test     Test

البنية العامة

set_trace_func(proc)  proc
set_trace_func(nil)   nil

المعاملات

proc‎

كائن من النوع Proc يمثل المتعقب المعطى.

القيمة المعادة

يعاد كائن من النوع Proc أو تعاد القيمة nil.

انظر أيضا

مصادر