الفرق بين المراجعتين ل"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 | + | يجعل التابع <code>set_trace_func</code> المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي <code>nil</code>. |
− | ملاحظة: هذا التابع | + | |
− | + | '''ملاحظة''': أصبح هذا التابع مهملًا، لذا يُرجى استخدام التابع <code>[[Ruby/TracePoint|TracePoint]]</code> بدلاً منه. | |
− | اسم حدث اسم ملف رقم | + | __TOC__ |
− | + | يقبل <code>proc</code> ستة معاملات هي: | |
− | الأحداث: | + | *اسم حدث |
− | <code>c-call</code> استدعاء C- | + | *اسم ملف |
− | يتم تعطيل التعقب في سياق proc. | + | *رقم سطر |
− | <syntaxhighlight lang="ruby"> class Test | + | *معرف كائن (object id) |
+ | *كائن ربط (binding) | ||
+ | *اسم صنف | ||
+ | يستدعى <code>proc</code> كلما وقع حدث. الأحداث هي: | ||
+ | {| class="wikitable" | ||
+ | !الحدث | ||
+ | !الوصف | ||
+ | |- | ||
+ | |<code>c-call</code> | ||
+ | |استدعاء برنامج فرعي في لغة C. | ||
+ | |- | ||
+ | |<code>c-return</code> | ||
+ | |العودة من برنامج فرعي في لغة C. | ||
+ | |- | ||
+ | |<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 | ||
def test | def test | ||
a = 1 | a = 1 | ||
سطر 37: | سطر 68: | ||
==المعاملات== | ==المعاملات== | ||
===<code>proc</code>=== | ===<code>proc</code>=== | ||
+ | كائن من النوع <code>[[Ruby/Proc|Proc]]</code> يمثل المتعقب المعطى. | ||
− | ===<code> | + | == القيمة المعادة == |
− | + | يعاد كائن من النوع <code>[[Ruby/Proc|Proc]]</code> أو تعاد القيمة <code>nil</code>. | |
− | |||
− | |||
==انظر أيضا== | ==انظر أيضا== | ||
− | * | + | *صفحة الصنف <code>[[Ruby/TracePoint|TracePoint]]</code>. |
− | |||
− | |||
==مصادر== | ==مصادر== | ||
− | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-set_trace_func قسم | + | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-set_trace_func قسم التابع set_trace_func في الصنف 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
.
انظر أيضا
- صفحة الصنف
TracePoint
.