الفرق بين المراجعتين لصفحة: «Ruby/TracePoint/new»
< Ruby | TracePoint
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
| سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>new | <noinclude>{{DISPLAYTITLE: التابع <code>TracePoint.new</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby TracePoint]] | [[تصنيف: Ruby TracePoint]] | ||
يُعيد التابع <code>new</code> [[Ruby/TracePoint| | يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقبً]]ا جديدًا غير مفعَّل افتراضيًّا. | ||
من أجل | راجع صفحة الصنف <code>[[Ruby/TracePoint|TracePoint]]</code> للتعرف على الأحداث الممكنة ولمزيد من المعلومات. | ||
يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code>. | |||
==البنية العامة== | |||
<syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj</syntaxhighlight> | |||
==المعاملات== | |||
===<code>events</code>=== | |||
أحداث يراد إنشاء تعقب لها. | |||
==القيمة المعادة== | |||
يعاد [[Ruby/TracePoint|متعقبٌ]] جديدٌ للأحداث <code>events</code>. | |||
== أمثلة == | |||
من أجل تفعيل التعقب بعد إنشائه باستعمال التابع <code>new</code>، يجب عليك استخدام التابع <code>[[Ruby/TracePoint/enable|enable]]</code>:<syntaxhighlight lang="ruby">trace = TracePoint.new(:call) do |tp| | |||
p [tp.lineno, tp.defined_class, tp.method_id, tp.event] | p [tp.lineno, tp.defined_class, tp.method_id, tp.event] | ||
end | end | ||
| سطر 16: | سطر 29: | ||
# ... | # ... | ||
# [48, IRB::Notifier::AbstractNotifier, :printf, :call] | # [48, IRB::Notifier::AbstractNotifier, :printf, :call] | ||
# ...</syntaxhighlight>إن أردت إلغاء التعقب، عليك استخدام <code>[[Ruby/TracePoint/disable|disable]]</code><syntaxhighlight lang="ruby">trace.disable | # ...</syntaxhighlight>إن أردت إلغاء التعقب، عليك استخدام التابع <code>[[Ruby/TracePoint/disable|disable]]</code>.<syntaxhighlight lang="ruby">trace.disable | ||
</syntaxhighlight> | </syntaxhighlight>إذا لم يتم تضمين التابع <code>[[Ruby/TracePoint/trace|trace]]</code> في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | ||
إذا لم يتم تضمين التابع <code>[[Ruby/TracePoint/trace|trace]]</code> في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | |||
p tp.raised_exception | p tp.raised_exception | ||
end | end | ||
#=> RuntimeError: 'raised_exception' not supported by this event | #=> RuntimeError: 'raised_exception' not supported by this event | ||
</syntaxhighlight>إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | </syntaxhighlight>إذا تم استدعاء التابع <code>trace</code> خارج كتلة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | ||
$tp = tp | $tp = tp | ||
end | end | ||
$tp.lineno #=> access from outside (RuntimeError) | $tp.lineno #=> access from outside (RuntimeError) | ||
</syntaxhighlight>كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]] الأخرى. | </syntaxhighlight>كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]] الأخرى. | ||
==انظر أيضًا== | |||
* التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد المعلومات الداخلية لل[[Ruby/TracePoint|متعقب]]. | |||
==انظر | |||
* التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-c-new قسم | *[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-c-new قسم التابع new في الصنف TracePoint في توثيق روبي الرسمي.] | ||
المراجعة الحالية بتاريخ 05:43، 8 ديسمبر 2018
يُعيد التابع new متعقبًا جديدًا غير مفعَّل افتراضيًّا.
راجع صفحة الصنف TracePoint للتعرف على الأحداث الممكنة ولمزيد من المعلومات.
يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء ArgumentError.
البنية العامة
new(*events) { |obj| block } → obj
المعاملات
events
أحداث يراد إنشاء تعقب لها.
القيمة المعادة
يعاد متعقبٌ جديدٌ للأحداث events.
أمثلة
من أجل تفعيل التعقب بعد إنشائه باستعمال التابع new، يجب عليك استخدام التابع enable:
trace = TracePoint.new(:call) do |tp|
p [tp.lineno, tp.defined_class, tp.method_id, tp.event]
end
#=> #<TracePoint:disabled>
trace.enable
#=> false
puts "Hello, TracePoint!"
# ...
# [48, IRB::Notifier::AbstractNotifier, :printf, :call]
# ...
إن أردت إلغاء التعقب، عليك استخدام التابع disable.
trace.disable
إذا لم يتم تضمين التابع trace في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء RuntimeError.
TracePoint.trace(:line) do |tp|
p tp.raised_exception
end
#=> RuntimeError: 'raised_exception' not supported by this event
إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق الاستثناء RuntimeError.
TracePoint.trace(:line) do |tp|
$tp = tp
end
$tp.lineno #=> access from outside (RuntimeError)
كما يُحظر الدخول من المهام الفرعية الأخرى.