الفرق بين المراجعتين لصفحة: «Ruby/Kernel/set trace func»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>set_trace_func</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby ...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
يجعل التابع set_trace_func الوسيط المعطى proc كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>. | يجعل التابع <code>set_trace_func</code> الوسيط المعطى <code>proc</code> كمتعقب (handler for tracing)، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>. | ||
ملاحظة: هذا التابع صار متجاوزًا، يُرجى استخدام <code>TracePoint</code> بدلاً | |||
ملاحظة: هذا التابع صار متجاوزًا، يُرجى استخدام <code>[[Ruby/TracePoint|TracePoint]]</code> بدلاً منه. | |||
اسم حدث اسم ملف رقم السطر معرف كائن ( | |||
يتم استدعاء proc كلما وقع حدث. | يقبل <code>proc</code> ستة وسائط: | ||
الأحداث: | * اسم حدث | ||
<code>c-call</code> استدعاء C-language routine <code>c-return</code> العودة من C-language routine <code>call</code> استدعاء تابع من توابع روبي <code>class</code> بدء تعريف صنف أو وحدة <code>end</code> | * اسم ملف | ||
يتم تعطيل التعقب في سياق proc. | * رقم السطر | ||
* معرف كائن (object id) | |||
* كائن ربط (binding) | |||
* اسم الصنف | |||
يتم استدعاء <code>proc</code> كلما وقع حدث. | |||
الأحداث هي كالآتي: | |||
{| class="wikitable" | |||
|<code>c-call</code> | |||
|استدعاء C-language routine | |||
|- | |||
|<code>c-return</code> | |||
|العودة من C-language routine | |||
|- | |||
|<code>call</code> | |||
|استدعاء تابع من توابع روبي | |||
|- | |||
|<code>class</code> | |||
|بدء تعريف صنف أو وحدة | |||
|- | |||
|<code>end</code> | |||
|إنهاء بدء تعريف صنف أو وحدة | |||
|- | |||
|<code>line</code> | |||
|تنفيذ كود برمجي على سطر جديد | |||
|- | |||
|<code>raise</code> | |||
|إطلاق استثناء | |||
|- | |||
|<code>return</code> | |||
|العودة من توابع روبي. | |||
|} | |||
يتم تعطيل التعقب في سياق <code>proc</code>. | |||
<syntaxhighlight lang="ruby"> class Test | <syntaxhighlight lang="ruby"> class Test | ||
def test | def test | ||
سطر 37: | سطر 68: | ||
==المعاملات== | ==المعاملات== | ||
===<code>proc</code>=== | ===<code>proc</code>=== | ||
يمثل المتعقب المعطى. | |||
==انظر أيضا== | ==انظر أيضا== | ||
* | * صفحة الصنف <code>[[Ruby/TracePoint|TracePoint]]</code>. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-set_trace_func قسم التابع set_trace_func في الصنف Kernel في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-set_trace_func قسم التابع set_trace_func في الصنف Kernel في توثيق روبي الرسمي.] |
مراجعة 16:53، 22 أكتوبر 2018
يجعل التابع 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
يمثل المتعقب المعطى.
انظر أيضا
- صفحة الصنف
TracePoint
.