1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
macro size: 1161
block 0: 0x8084b38
  ip | op|              op name |  block | size
-----------------------------------------------
[  0]  32 (         open_module), block 0 (115)
  arg: 0
[  2]  37 (             dup_top), block 0 (37)
[  3]  11 (        push_literal), block 0 (74)
  arg: 1
[  5]  16 (          swap_stack), block 0 (92)
[  6]  28 (       attach_method), block 0 (204)
  arg: 2
[  8]  38 (                 pop), block 0 (15)
[  9]  40 (         send_method), block 0 (207)
  arg: 3
[ 11]  52 (       push_encloser), block 1 (21)
block 1: 0x8084e41
[ 12]  38 (                 pop), block 1 (15)
[ 13]   2 (           push_true), block 1 (27)
[ 14] 106 (                sret), block 1 (48)

Breakpoint 2, cpu_run (state=0x804b7e8, c=0x8070008, setup=0)
    at cpu_instructions.c:1671
1671      ip_ptr = NULL;
(gdb) disassemble ins_info[0].start ins_info[0].start+50
Dump of assembler code from 0xb7e48b3e to 0xb7e48b70:
0xb7e48b3e <cpu_run+3881>:      mov    0xffffff6c(%ebp),%edx
0xb7e48b44 <cpu_run+3887>:      mov    (%edx),%eax
0xb7e48b46 <cpu_run+3889>:      mov    %eax,%ecx
0xb7e48b48 <cpu_run+3891>:      lea    0x4(%edx),%eax
0xb7e48b4b <cpu_run+3894>:      mov    %eax,0xffffff6c(%ebp)
0xb7e48b51 <cpu_run+3900>:      mov    %ecx,0xffffff30(%ebp)
0xb7e48b57 <cpu_run+3906>:      jmp    0xb7e48b59 <cpu_run+3908>
0xb7e48b59 <cpu_run+3908>:      jmp    *0xffffff30(%ebp)
0xb7e48b5f <cpu_run+3914>:      mov    0xffffff6c(%ebp),%edx
0xb7e48b65 <cpu_run+3920>:      mov    (%edx),%eax
0xb7e48b67 <cpu_run+3922>:      mov    %eax,%ecx
0xb7e48b69 <cpu_run+3924>:      lea    0x4(%edx),%eax
0xb7e48b6c <cpu_run+3927>:      mov    %eax,0xffffff6c(%ebp)
End of assembler dump.