gpt4 book ai didi

ruby-on-rails - ObjectSpace#allocation_class_path 未按预期工作

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:12 26 4
gpt4 key购买 nike

使用 Ruby 版本 2.1.2

class A
def foo
ObjectSpace::trace_object_allocations do
obj = Object.new
p "#{ObjectSpace::allocation_class_path(obj)}"
end
end
end

A.new.foo #=> "Class"

上述方法期望返回对象的分配类路径。但是我得到一个空字符串而不是“Class”。是方法的实现错误还是文档没有更新。

这里是 link

谢谢

最佳答案

我认为您刚刚在核心中发现了一个可能的错误。我已经向开发人员报告了这个问题,bug #9938 .

我确实怀疑来自 object_tracing.c 的lookup_allocation_info,但需要进一步调查。

更新:Koichi Sasada(aka ko1)已经确定了原因并 promise 将在即将发布的 Ruby 2.2 中修复。同时,您可以使用变通方法在模块中手动缓存对象名称

ObjectSpace.each_object(模块){|o| o.name}

放置在对象跟踪代码之前。

关于ruby-on-rails - ObjectSpace#allocation_class_path 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24181789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com