gcc -g main.c -o main 生成调试信息
gdb app
help h 按模块列出命令类
help class 查看某一类型的具体命令
list l 查看代码,可跟行号和函数名
quit q 退出gdb
run r 全速运行程序
start 单步执行,运行程序,停在第一行执行语句
next n 逐过程执行
step s 逐语句执行,遇到函数,跳到函数内执行
backtrace bt 查看函数的调用的栈帧和层级关系
info i 查看gdb内部局部变量的数值, 比如info breakpoints
frame f 切换函数的栈帧
finisth 结束当前函数,返回到函数调用点
set 设置变量的值
run argv[1] argv[2] 调试时命令行传参
print p 打印变量和地址
set 变量 值 修改变量的值
break b 设置断点,可根据行号和函数名
delete breakpoints NUM 删除断点
display 设置观察变量
undisplay 取消观察变量
continue c 继续全速运行剩下的代码
enable breakpoints 启动断点
disable breakpoints 禁用断点
info breakpoints 查看所有设置的断点
x 查看内存 x/20x 变量 显示20个单元,16进制,4字节每单元
watch 被设置观察点的变量发生修改时,打印显示
i watch 显示观察点
core文件 ulimit -c 1024 开启core文件,调试时
gdb a.out core
set follow-fork-mode child#Makefile项目管理