跳轉到內容

Ruby 程式設計/參考/物件/RubyVM

來自華夏公益教科書,開放的書,開放的世界

RubyVM 非常依賴於 VM(如上所述)。目前僅針對 1.9.x MRI 定義。

RubyVM::InstructionSequence.disassemble

[編輯 | 編輯原始碼]

僅在 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。

華夏公益教科書