InstructionSequence.disasm(body) â str
InstructionSequence.disassemble(body) â str
InstructionSequence.disassemble(body) â str
Class Public methods
Takes body
, a Method or Proc object, and returns a String with the human
readable instructions for body
.
For a Method object:
1 2 3 4 5 6 | # /tmp/method.rb def hello puts "hello, world" end puts RubyVM::InstructionSequence.disasm(method( :hello )) |
Produces:
1 2 3 4 5 6 7 8 | == disasm: <RubyVM::InstructionSequence :hello @/tmp/method.rb>============ 0000 trace 8 ( 1 ) 0002 trace 1 ( 2 ) 0004 putself 0005 putstring "hello, world" 0007 send :puts , 1 , nil , 8 , <ic: 0 > 0013 trace 16 ( 3 ) 0015 leave ( 2 ) |
For a Proc:
1 2 3 | # /tmp/proc.rb p = proc { num = 1 + 2 } puts RubyVM::InstructionSequence.disasm(p) |
Produces:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | == disasm: <RubyVM::InstructionSequence :block in <main>@/tmp/proc.rb>=== == catch table | catch type: redo st: 0000 ed: 0012 sp: 0000 cont: 0000 | catch type: next st: 0000 ed: 0012 sp: 0000 cont: 0012 |------------------------------------------------------------------------ local table (size: 2 , argc: 0 [opts: 0 , rest: - 1 , post: 0 , block: - 1 ] s1) [ 2 ] num 0000 trace 1 ( 1 ) 0002 putobject 1 0004 putobject 2 0006 opt_plus <ic: 1 > 0008 dup 0009 setlocal num, 0 0012 leave |
Please login to continue.