PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /opt/alt/ruby32/share/ruby/objspace/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //opt/alt/ruby32/share/ruby/objspace/trace.rb |
# This is a simple tool to enable the object allocation tracer. # When you have an object of unknown provenance, you can use this # to investigate where the object in question is created. # # = Important notice # # This is only for debugging purpose. Do not use this in production. # Require'ing this file immediately starts tracing the object allocation, # which brings a large performance overhead. # # = Usage # # 1. Add `require "objspace/trace"` into your code (or add `-robjspace/trace` into the command line) # 2. `p obj` will show the allocation site of `obj` # # Note: This redefines `Kernel#p` method, but not `Object#inspect`. # # = Examples # # 1: require "objspace/trace" # 2: # 3: obj = "str" # 4: # 5: p obj #=> "str" @ test.rb:3 require 'objspace.so' module Kernel remove_method :p define_method(:p) do |*objs| objs.each do |obj| file = ObjectSpace.allocation_sourcefile(obj) line = ObjectSpace.allocation_sourceline(obj) if file puts "#{ obj.inspect } @ #{ file }:#{ line }" else puts obj.inspect end end end end ObjectSpace.trace_object_allocations_start warn "objspace/trace is enabled"