Server IP : 66.29.132.122 / Your IP : 3.141.31.178 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/alt/ruby33/share/ruby/objspace/ |
Upload File : |
# 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"