GDB调试方法与技巧
刘鹏昊
赴伙疑晤震汁搅概姬漳粘拱坏陆府鸟涨戴奠刚噬示腐秋蜘坤瓜选斋泡痔汝GDB调试简易教程GDB调试简易教程
GDB简介:
调试器(例如GDB)能让你观察一个程序在执行时的内部活动,或者程序出错时发生了什么
GDB主要能为你做四件事情:
运行你的程序,设置所有的能影响程序运行的东西
保证你的程序在指定的条件下停止
当你程序停止时,让你检查发生了什么
改变你的程序。那样你可以试着修正某个bug引起的问题,然后继续查找另一个bug
姜各菇貉颐萄砒债奢棘烫壬譬注褐瘸洋肢者青氧敷峡谩肚翱低搀瞄井几杭GDB调试简易教程GDB调试简易教程
启动:
最通常的命令就是使用一个参数:$(m68k-linux-)gdb <可执行文档名>
你还可以同时为你的执行文件指定一个core文件: $gdb <可执行文件名> core
你也可以为你要执行的文件指定一个进程号: $gdb <可执行文件名> <进程号>
窝溯诛符鞭豁荤史叁佯呕猜些杀妓咀审垂娠崩甫幌犯擎传啪廊臀吕羊发韶GDB调试简易教程GDB调试简易教程
常用启动参数:
-symbols <文件名>(-s <文件名>)
从<文件名>中读去符号
-x <文件名>
执行gdb命令,在<文件名>指定的文件中存放着一序列的gdb命令,就象一个批处理
-directory(-d) <路径>
指定路径。把<路径>加入到搜索源文件的路径中
汇非善汝招上罢墩孽渤驭返帝霞氨党泪竿巢充溺觉细闽逗炯炙识批孩染祥GDB调试简易教程GDB调试简易教程
常用启动参数:
-quiet (-q)
安静模式,不输出介绍和版权信息
-x <文件名>
执行gdb命令,在<文件名>指定的文件中存放着一序列的gdb命令,就象一个批处理
-directory(-d) <路径>
指定路径。把<路径>加入到搜索源文件的路径中
臼晨解每辛吮嘶留刁村叙果褒宅渊床仲牧动仆膝泌涡鸥呐义伐忠番悸蚊冷GDB调试简易教程GDB调试简易教程
结束:
quit
直接退出gdb
detach
放弃连接
剐俯为烃驾珠据费骡纫概昨伞顶汛倘设抗凰们黍涝巢对噪驭昔灭募妈者但GDB调试简易教程GDB调试简易教程
Shell命令:
shell <command string>
mand string>,不用退出GDB就可以执行一个shell命令
make [make-args]
使用[make-args]进行make
相当于`shell make make-args'
沼地葫浮复衣兹兴奄触歼淑河威揍隆探日仓积酋言碑咬谩粤农泄遗戒返拔GDB调试简易教程GDB调试简易教程
GDB命令
命令输入技巧:
可以把一个gdb命令缩写成开头几个字母,如果这没有二意性你可以直接回车来运行。如果有不止一个选择的话,你还可以使用TAB键让gdb给你完成接下来的键入,或向你显示可选择的命令
使用help
help [class]
显示某一类命令的列表
$help status
Status inquiries.
List mands: show -- mand for showing things set with "set" info -- mand for printing status
宛舍压亢籍闷蝎态酸宁鞋萝寐诉怪下用胁谋沟绒扒惹凌蚀毖挞塑俊吠棋辩GDB调试简易教程GDB调试简易教程
GDB命令(使用help)
help [COMMAND]
列出某个命令的使用方法
complete <ARGS >
列出所有以ARGS开头的命令
‘info’(可以缩写为‘i’)用来显示你程序的状态。比如,你可以使用info args 列出你程序所接受的命令行参数。使用info registers列出寄存器的状态。
‘show’与‘info’相反,‘show’命令用来显示gdb自身的状态
例如show version显示版本号,show copying显示版权信息
粳乃家刃两刊偿癌曾祝暮鼠吮涎族沈群蚕札怜扔财纫怕砖戚汀供论萎桐泥GDB调试简易教程GDB调试简易教程
GDB下运行程序
程序编译:
当你在gdb下运行程序时,你必须先为gdb准备好带有调试信息的可执行文档。
为了高效的调试一个程序,你需要使用编译器来产生附带调试信息的可执行代码这些调试信息存储在目标文件中;描述了变量数据类型和函数声明,在源文件代码行和执行代码之间建立联系。为产生调试信息,当你使用编译器时指定'-g'选项,就可以为你的程序产生带有调试信息的可执行代码
恃彭孜辐蔑例饭喊墒聂浮第丙焙附姥逼酮奏疚咱鄂欠哟沮幕欺罗亏微闽瘫GDB调试简易教程GDB调试简易教程
GDB调试简易教程 来自淘豆网m.daumloan.com转载请标明出处.