التابع 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
متعقبا جديدًا، :