gdb でアセンブリコードを見てみる

see ぐあ間違えてリンクしてた - daily dayflower

んじゃ機械に近いアセンブリで覗こうと思って

(gdb) disassemble
Dump of assembler code for function debug_add_class:

<+0>:	push   %ebp
<+1>:	mov    %esp,%ebp
<+3>:	sub    $0x28,%esp
<+6>:	mov    %edi,-0x4(%ebp)
<+9>:	mov    0x8(%ebp),%edi
<+12>:	mov    %ebx,-0xc(%ebp)
<+15>:	call   0xb78c54b7 <__i686.get_pc_thunk.bx>
<+20>:	add    $0x5edfc,%ebx
<+26>:	mov    %esi,-0x8(%ebp)
<+29>:	test   %edi,%edi
<+31>:	je     0xb791a452 <debug_add_class+66>
<+33>:	call   0xb791a5a0 <debug_init>
<+38>:	mov    %edi,%eax
<+40>:	call   0xb791a3a0 <debug_lookup_classname_int>
<+45>:	test   %eax,%eax
<+47>:	mov    %eax,%esi
<+49>:	js     0xb791a459 <debug_add_class+73>
<+51>:	mov    %esi,%eax
<+53>:	mov    -0xc(%ebp),%ebx
<+56>:	mov    -0x8(%ebp),%esi
<+59>:	mov    -0x4(%ebp),%edi
<+62>:	mov    %ebp,%esp
<+64>:	pop    %ebp
<+65>:	ret    
<+66>:	mov    $0xffffffff,%esi
<+71>:	jmp    0xb791a443 <debug_add_class+51>

<+73>:	mov    -0xec(%ebx),%eax
<+79>:	mov    0xb010(%ebx),%esi
<+85>:	mov    (%eax),%edx
<+87>:	lea    0x64ec(%ebx),%eax
<+93>:	movl   $0x1,0xc(%esp)
<+101>:	movl   $0x4,0x4(%esp)
<+109>:	cmp    %eax,%edx
<+111>:	sete   %al
<+114>:	movzbl %al,%eax
<+117>:	sub    $0x1,%eax
<+120>:	and    %eax,%edx
<+122>:	lea    0x1(%esi),%eax
<+125>:	mov    %edx,(%esp)
<+128>:	mov    %eax,0x8(%esp)
<+132>:	call   0xb7931f40 <realloc_array>

<+73> からがキモなんだけど挫折した。