gcc:
-o设置输出的二进制文件名
-S编译器生成一个函汇编指令的文件,用.s后缀
-ggdb生成额外信息,对gdb调试有用
-c只编译,不链接,生成.o文件
-mpreferred-stack-boundary=2在编译文件时使用dword大小的栈,在学习时可以简化调试过程.
gdb:
b+函数名:在指定函数处设置断点
b+*mem:在指定内存地址设置断点
i b显示断点信息
d删除断点
r<args>执行,args可以当成输入
i r显示寄存器状态
s单步执行
si单个汇编指令执行
n执行一个函数
c执行到断点
bt回溯命令,给出当前调用栈信息
up/down在调用栈中上下移动
print var打印变量值
x N/T A
q退出
disasse <func name>反汇编给定的函数
set disassembly-flavor <intel/att>设置汇编语言格式(个人偏好intel)