13

YARV によって実行された Ruby バイトコードを事後分析して観察したいと思います。

どうすればこれを入手できますか?

ここにいる他の誰かが、それは不可能だと言いました。ただ、ルビーのバイトコードを実行するように見えるhotrubyフレームワークがあり、戸惑っています...

どうもありがとう!

4

3 に答える 3

2

私が理解している限り、RubyVM::InstructionSequence.compile必要なものです。

于 2011-08-01T09:10:34.290 に答える
0

より読みやすい出力を得るには、disasm後に使用できますcompile

[17] pry(main)> code = <<STR
[17] pry(main)* puts "Hello World"
[17] pry(main)* STR
=> "puts \"Hello World\"\n"
[19] pry(main)> puts RubyVM::InstructionSequence.compile(code).disasm
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace            1                                               (   1)
0002 putself
0003 putstring        "Hello World"
0005 opt_send_without_block <callinfo!mid:puts, argc:1, FCALL|ARGS_SIMPLE>
0007 leave
=> nil
[20] pry(main)>
于 2019-02-03T09:22:25.017 に答える