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

من موسوعة حسوب

يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي nil.

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

يقبل proc ستة وسائط:

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

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

c-call استدعاء C-language routine
c-return العودة من C-language routine
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‎

يمثل المتعقب المعطى.

انظر أيضا

مصادر