gdb调试流程
1.gcc a.c b.c -o app
gcc a.c b.c -o app -g
-g:会保留函数名和变量名
2.启动gdb
gdb 可执行程序的名字
给程序传参:set args xxx xxx
3.查看代码 -- list
当前文件:
l:查看默认行数的代码
l 行号:查看在行号上下的代码
l 函数名:查看函数名上下的代码
非当前文件:
l 文件名:行号 :查看xxx文件在行号上下的代码
l 文件名:函数名 :查看xxx文件在函数上下的代码
查看默认显示行数:show listsize
设置默认显示行数:set listsize n
4.断点操作 -- break/b
开始运行gdb:
start(运行一行后停止,进行运行使用continue)
run(r)(运行到第一个断点后停止)
设置断点:
b 行号
b 函数名
b 文件名:行号
b 文件名:函数名
查看断点:
info(i) b
删除断点:
d num(断点编号)
d num1 num2……(删除多个断点)
d num1-numn(删除1到n个断点)
设置断点无效:
dis num(断点编号)
设置断点有效:
ena num
设置条件断点:
b 行号 if 变量 == 值
5.相关调试命令
打印变量的值:
p 变量名
打印变量的类型:
ptype 变量名
向下单步调试:
next(n)(不会进入函数体)
step(s)(会进入函数体)
继续运行gdb,停在下一个断点的位置
continue(c)
跳出函数体:
finish(若出不去函数体,需判断函数体内是否有断点,若有则输出或使其无效)
退出gdb:
quit(q)
变量值的自动显示:
display 变量名(取消:undisplay 变量名)
查看自动显示:
i display
从循环体自动跳出:
until(不能有断点)
直接设置变量等于某一个值:
set var 变量名=value
标签:函数,查看,行号,gdb,变量名,断点,调试 来源: https://www.cnblogs.com/czhdbk/p/14396463.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。