Bug #9026

[PATCH] Add ObjectSpace.heap_dump to

Added by tmm1 (Aman Gupta) over 6 years ago. Updated over 6 years ago.

Target version:
ruby -v:
ruby 2.1.0dev (2013-10-16 trunk 43297) [x86_64-darwin12.4.1]

Updated by tmm1 (Aman Gupta) over 6 years ago

Based on feedback from ko1-san, I have modified the ruby signatures as follows:

  • call-seq:
  • ObjectSpace.dump(obj[, output: :string]) # => "{...}"
  • ObjectSpace.dump(obj, output: :file) # => "/tmp/rubyobj000000"
  • ObjectSpace.dump(obj, output: :stdout) # => nil

  • call-seq:

  • ObjectSpace.dump_all([output: :file]) # => "/tmp/rubyheap000000"

  • ObjectSpace.dump_all(output: :stdout) # => nil

  • ObjectSpace.dump_all(output: :string) # => "{...}\n{...}\n..."

If anyone has opinions on these APIs, I'd love to hear them.

Updated by akahn (Alexander Kahn) over 6 years ago

I think it could be helpful to be able to specify the filename that the dump should be written to, or at least the directory.

Updated by tmm1 (Aman Gupta) over 6 years ago

You can use something like this:, "mydumpfile.json")


Updated by tmm1 (Aman Gupta) over 6 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r43585.
Aman, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

  • ext/objspace/object_tracing.c: Add experimental methods to dump objectspace as json: ObjectSpace.dump_all and ObjectSpace.dump(obj). These methods are useful for debugging reference leaks and memory growth in large ruby applications. [Bug #9026] [ruby-core:57893] [Fixes GH-423]

Also available in: Atom PDF