الفرق بين المراجعتين لصفحة: «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)
كما يُحظر الدخول من المهام الفرعية الأخرى.