Method: ObjectSpace.trace_object_allocations
- Defined in:
- object_tracing.c
.trace_object_allocations { ... } ⇒ Object
Starts tracing object allocations from the ObjectSpace extension module.
For example:
require ‘objspace’
class C
include ObjectSpace
def foo
trace_object_allocations do
obj = Object.new
p "#{allocation_sourcefile(obj)}:#{allocation_sourceline(obj)}"
end
end
end
C.new.foo #=> “objtrace.rb:8”
This example has included the ObjectSpace module to make it easier to read, but you can also use the ::trace_object_allocations notation (recommended).
Note that this feature introduces a huge performance decrease and huge memory consumption.
269 270 271 272 273 274 |
# File 'object_tracing.c', line 269 static VALUE trace_object_allocations(VALUE self) { trace_object_allocations_start(self); return rb_ensure(rb_yield, Qnil, trace_object_allocations_stop, self); } |