There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "i386-asianux-linux-gnu"...(no debugging
symbols found)...Using host libthread_db library
"/lib/tls/libthread_db.so.1".
(gdb) disassemble main ---> 反汇编 main 函数
Dump of assembler code for function main:
0x08048310 <main+0>: push %ebp --->ebp 寄存器内容压栈,
即保存 main 函数的上级
调用函数的栈基地址
0x08048311 <main+1>: mov %esp,%ebp ---> esp 值赋给
ebp,设置 main 函数
的栈基址
0x08048313 <main+3>: sub $0x8,%esp --->通过 ESP-8 来分配
8 字节堆栈空间
0x08048316 <main+6>: and $0xfffffff0,%esp --->使栈地址 16
字节对齐
0x08048319 <main+9>: mov $0x0,%eax ---> 无意义
0x0804831e <main+14>: sub %eax,%esp ---> 无意义
0x08048320 <main+16>: mov $0x0,%eax ---> 设置函数返回值
0
0x08048325 <main+21>: leave --->将 ebp 值赋给 esp,pop 先
前栈内的上级函数栈的基地址
给 ebp,恢复原栈基址.
<!--[if !
supportLineBreakNewLine
]-->
<!--[endif]-->
0x08048326 <main+22>: ret ---> main 函数返回,回到上级调用.
0x08048327 <main+23>: nop
End of assembler dump.