gcc a.c b.c c.c -o app
gcc a.c b.c c.c -o app -g
-g:会保留函数名和变量名
1:启动gdb
gdb 可执行程序的名字
gdb app
给程序传参:set args xxxx xxxx
2:查看代码--list
l:默认main函数的文件,默认10行
show listsize:修改默认显示行数
set listsize 20:修改默认显示行数
l 5: l 行号 显示第5行的上下
l main: l 函数名字,显示main函数的上下
l main.c:15: 显示main.cpp的上下文
l main.c:function 显示main.cpp的function函数上下文
3:断点操作-break/b
设置断点:break/ b 行号/函数名/文件名:行号/文件名:函数名
查看断点:info/i b
删除断点:del/d num(断点的编号)(d 2 3 4) ( d 2-4)
设置断点无效:dis num(无效)
断点生效:ena num(有效)
设置条件断点: b 17 if i==10 (p i 查看i的值)
4:调试相关命令
start :运行一行
run/r :
p i : print i(打印i)
ptype i : 查看i的类型
n : next 单步(不会进入函数体的内部)
display i: 每次打印i
i display:
undisplay num: 不输出显示
c : continu 继续走
step : 进入函数体的内部(单步但是会进入函数内部)
finish :退出函数体内部
set var i=5 : 设置i的值
until :跳出当前循环
q : 退出