- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件调试GDB笔记
断点break
加普通断点: break(b)
break 当前位置加断点
break funcName break lineNum
break filename:lineNum break filename:funcName
break +offset break –offset基于当前行号
break *address 虚拟地址。 用于源代码不可用或共享库。
加临时断点 tbreak(停一次后 删除此断点)
加条件断点
运算符:( = == != = || | ^ + - x / %)
break main if argc 1
break main if (argc == 1)
break 180 if string==NULL i 0
自己的函数:
break test.c:myFunc if (func(1)==1)
库函数:
break 44 if strlen(myStr)==0
先break后加条件:
cond 3 i==3
删除条件 保留断点
cond 3
查看断点:info breakpoints (i b)
禁用:disable 1 disable 1 3 4(多个列表) (ID:1, 2,3 ) 不带参数禁用所有
启用:enable 1 enable 1 3 4(多个列表) 不带参数启动所有
enable once 1
删除断点: delete 1(ID号,1,2,3… )
clear(参数和break一样)
GDB 当前活动文件
改变:
list 别的文件
运行在别的文件的代码里
在别的文件的断点里
gdbinit启动文件
断点命令列表:在断点处自动执行命令, 不用手动敲
格式: command 1
xxxxxx
end
例子: command 1
silent //去掉gdb提示信息 如哪行,下一行的源码
printf
continue
end
define命令创建宏:用一个宏代表多句命令,多处可以共用。
define print_and_go
printf $arg0, $arg1
continue
end //必须以end结束
使用宏:
print_and_go “xxxxx %d\n”n
查看所有宏:
show user
断点处恢复执行
单步调试
next(n): 函数不进入
next 3 相当于键入3次next
step(s):函数进去
step 3
continue(c):
继续运行直到下个断点
continue n(忽略n个断点)
finish:结束当前函数
until:退出循环。可能要多敲几个命令。
监视点(watch)
当某个值或者某个表达式变化时 暂停。
断点是某个位置关联,监视点和位置无关。
只能在变量作用域内使用。
只能监视单线程的变量。
一般使用方法:先在一个函数内break, 这时变量在作用域内,再watch。
加监视点:
watch i
watch (i | j 12)
检查设置变量
主动打印 print(p)
每次暂停时都打印:display(disp) undisplay(undisp)
指定格式: /x /c /s /f
display:
加显示点: disp uiRet
禁用 dis disp 1
启用 enable disp 1
删除 undisp 1
打印所有的局部变量:info locals
打印当前函数参数:info args
打印值历史:p $1
值历史被标为$1 $2 $3
改变某个变量: set x = 12
改变程序参数: set args 1 2 3(重新run才有效)
打印结构体信息:
p stXXX
p *pstXXX(结构体指针)
打印数组:
p x (int x[10];)
动态malloc: int *pi = malloc(25 * 4);
p pi (打印pi的地址)
p *pi (打印第一个元素的值)
p (int [25])*pi (强制转换,打印全部25个元素)
p *pi@25 (打印全部25个元素)
打印结构体类型的定义:
ptype stXXX
方便变量:调试时自定义变量
set $i = 0
直接调用函数: call printTree(root)
可以在断点处调用函数来检查结果。
如果每次进断点都要检查,可以使用commands。
您可能关注的文档
最近下载
- 《中国传统文化融入小学高年级英语学习活动的实施路径研究》课题研究方案.doc
- 《基于语文核心素养理念下小学语文高段阅读教学策略研究》研究计划——以榆林市M小学为例.docx
- T_PSC 9-2022 绿潮灾害风险预警技术导则.docx
- 湖南省建设工程总承包发包人要求编写指南.pdf VIP
- MBTI职业性格测试及解析(最完整版)【稀缺资源-路过别错过】.pdf VIP
- 药物警戒管理体系质量控制指标管理规程.docx
- 十二星座传说及性格.ppt VIP
- 小班音乐《小动物和狼》课件.ppt VIP
- 赤潮遥感跟踪预警技术指南.pdf
- 南通沃兰化工有限公司年产2000吨苯磺酰氯等产品项目环境影响报告书.pdf
文档评论(0)