Linux上的调试:gdb
版本:
debug版本 调试版本 程序开发人员使用
gcc main.c -o debug -g -->debug版本
-g在编译阶段将调试信息添加进中间文件中 gcc -c main.c -g
调试的目标:生成debug版本的可执行文件
gdb debug版本的可执行文件
.a .lib .so .dll ELF格式
链接:合并符号表 合并section调整段
大小和段起始位置
符号重定位
realease版本 发行版本 提供给用户使用
gcc默认生成realease版本
gcc -c main.c -g
gdb run
l/list 显示源代码
list +filename:num
list +文件名 可查看文件源码
加断点 + 文件名 : 行号 指定文件指定行添加断点(不同的文件起始都是1,所以要明确文件)
b line 给指定的行添加一个断点(没有文件名 则最后一个显示的文件添加断点)
b filename:line
b + 函数名 给指定的函数体加断点
info b 显示断点信息
gdb r/run 启动调试
n/next 执行到下一行(逐过程)
s 进入函数体内(除了可以加断点进入函数,s可以直接进入)
finish 退出函数
p var 显示变量的值(查看当前变量值,无所谓类型)
q 退出调试