Issue #9938 has been updated by Koichi Sasada. Status changed from Open to Rejected ---------------------------------------- Bug #9938: ObjectSpace::allocation_class_path does not object's class https://bugs.ruby-lang.org/issues/9938#change-47803 * Author: David Unric * Status: Rejected * Priority: Normal * Assignee: Koichi Sasada * Category: core * Target version: * ruby -v: 2.1.2 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Possible bug in `ObjectSpace::allocation_class_path` returning `nil` instead of expected class name: ~~~ruby require 'objspace' class A def foo ObjectSpace::trace_object_allocations do obj = Object.new p ObjectSpace::allocation_class_path(obj) # "A" expected, prints nil instead obj = Array.new p ObjectSpace::allocation_class_path(obj) # "A" expected, prints nil instead obj = [] p ObjectSpace::allocation_class_path(obj) # prints "A" as expected !! obj = obj.dup p ObjectSpace::allocation_class_path(obj) # "A" expected, prints nil instead !! obj = Hash.new p ObjectSpace::allocation_class_path(obj) # "A" expected, prints nil instead obj = {} p ObjectSpace::allocation_class_path(obj) # prints "A" as expected !! end end end A.new.foo ~~~ Very inconsistent behavior, `allocation_class_path` seems to works only with objects defined with literals not instantiated with `class.new` method. Also discussed at StackOverflow: http://stackoverflow.com/questions/24181789/objectspaceallocation-class-path-not-working-as-expected -- https://bugs.ruby-lang.org/