Ruby 编程/参考/对象/RubyVM
外观
RubyVM 非常依赖于 VM(如上所述)。目前仅针对 1.9.x MRI 定义。
仅在 1.9 上可用,这基本上是 yarv 的包装器。
>> class A; def go; end; end >> b = A.new.method(:go) => # >> print RubyVM::InstructionSequence.disassemble b == disasm: ======================= 0000 trace 8 ( 1) 0002 putnil 0003 trace 16 ( 1) 0005 leave
我相信这些跟踪方法代表对任何 Kernel#set_trace_func(或该 ruby 方法的 C 对应项)的调用。
还要注意,使用 1.9.2,您可以传递一个 proc。