编译携带调试信息的可执行程序
gcc编译时加上-g参数
gcc *.c -o myapp -g
因为携带调试信息,带-g参数生成的可执行文件体积会比不带-g参数的大,发布应用的时候一般取消—g参数生成可执行程序。
进入调试
gdb 带-g参数生成的可执行文件
GDB 调试
start # 只执行一步
next(n) # 继续执行 单步走 跳过函数
step(s) # 继续执行 单步走 可以进入到函数内部
continue(n) # 继续执行 直接停在断点位置
查看代码
# list(l)
l # 行号|函数名
l # 文件名:行号|函数名字
设置断点
# 设置文件断点
# break(b)
b # 行号|函数名
b # 文件名:行号|函数名
# 设置条件断点
b 行号 条件 if value == 19
# 查看断点编号
# info (i) # 查看信息
i b # 查看设置断点
# 删除断点
# detele(d)
d # 断点编号(通过info b查看断点信息获取编号)
开始执行GDB调试
#执行一步操作
start
#继续执行
n|s
#执行多步,直接停在断点处
单步调试
# 进入函数体内部
s
# 从函数体内部跳出 finish 如果有断点则需要删除断点信息才能跳出
# 不进入函数体内部
n
# 退出当前循环
u
查看变量
# 查看变量的值
print(p) 变量名
# 查看变量的类型
ptype 变量名
# 设置变量的值
set var 变量名=赋值
# 设置追踪变量
display 变量
# 取消设置追中变量
undisplay 编号
# 获取编号
info display
退出gdb调试
quit