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

من موسوعة حسوب
< Ruby‏ | Kernel
مراجعة 16:45، 22 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>set_trace_func‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby ...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي nil. ملاحظة: هذا التابع صار متجاوزًا، يُرجى استخدام TracePoint بدلاً من ذلك. يأخذ proc ستة وسائط: اسم حدث اسم ملف رقم السطر معرف كائن (an 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‎

nil‎

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

انظر أيضا

  • التابع select: يستدعي select(2). ويقوم بمراقبة المصفوفة المعطاة المكونة من كائنات IO، وينتظر حتى يكون أحد كائنات IO جاهزًا للقراءة ، وجاهزا للكتابة، ويكون لها استثناءات معلقة (pending exceptions) على التوالي، ثم يعيد مصفوفة تحتوي على مصفوفات مكونة من تلك كائنات IO السابقة. ستُعاد القيمة nil إذا تم إعطاء قيمة للوسيط الاختياري timeout، ولم يكن هناك أي كائن IO جاهزًا خلال timeout ثانية.
  • التابع sleep: يعلّق التابع sleep المهمة الفرعية (thread) الحالية لعدد من الثواني (والذي قد بكون أي عدد، بما في ذلك Float مع كسور ثوان). ثم يعيد عدد الثواني الفعلي (بالتقريب) الذي نامتها المهمة الفرعية، والذي قد يكون أقل من العدد المطلوب إن استدعت مهمة فرعية أخرى Thread#run. في حال استدعائها دون تمرير أي وسيط، ستقوم sleep() بتنويم المهمة الفرعية إلى الأبد.

مصادر