gcc和gdb调试

1.逐过程生成
预编译:gcc -E main.c 生成main.c文件
编译:gcc -S main.i 生成 main.i文件
汇编:gcc -c main.s 生成main.s文件
链接:gcc main.o 生成a.out文件
重命名:gcc main.o -o main 生成main文件
2.一步生成可执行文件:gcc main.c -o main 生成main文件
执行:./main
3.生成debug版本的可执行文件
gcc -c main.c -g
gcc main.c -o debug -g
在编译阶段将-g添加进文件中
4.调试目标:debug版本的可执行文件
gdb debug:进入gdb调试界面
l/list 显示源代码
lift filename:num 显示filename的前num行代码
b line 给指定的行添加断点
b fun n给指定的函数的第n行添加断点
info b显示已添加的断点
d bpnum 删除指定的断点
r/run 启动调试
n/next 逐过程
s 逐语句
p var 显示变量值
finish 退出函数
c执行到下一个断点
display 显示变量
undisplay num 删除第num个display
x查看内存:x/nfu + 地址
n:显示数据的个数 f:显示数据的进制数 u:每个数字代表n字节数据
f:x十六进制 d十进制 o八进制 t二进制 c字符 f浮点数
u:b单字节 h双字节 w四字节 g八字节
常用的 x/4xb + 地址
bt:函数调用堆栈
ptype:显示数据类型

猜你喜欢

转载自blog.csdn.net/D_o_nlyone/article/details/81260386