التابع new الخاص بالصنف TracePoint في روبي
< Ruby | TracePoint
يُعيد التابع 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
راجع صفحة الصنف TracePoint للتعرف على الأحداث الممكنة ولمزيد من المعلومات.
يجب إعطاء كتلة، وإلا سيُطلق الاستثناء ArgumentError.
إذا لم يتم تضمين التابع 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)
كما يُحظر الدخول من المهام الفرعية الأخرى.
البنية العامة
new(*events) { |obj| block } → obj
المعاملات
events
أحداث.
القيمة المُعادة
يُعيد التابع new متعقبا جديدًا، :