- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
dbx调试程序培训资料V2.00
DBX调试程序培训资料
开发一部 吴云
课时:1.5 版本:V2.00
目标听众
新入职软件开发工程师
应届毕业生
什么是dbx
dbx是unix环境下的源码级调试工具,它可以支持调试多种语言编写的程序。
dbx的完整命令行参数如下:
dbx [ -c cmd ] [ -C ] [ -d ] [ -e ] [ -h ] [ -Idir ] [ -k ]
[ -q ] [ -r ] [ -R ] [ -s startup ] [ -S ] [ -V ] [ -wcount
] [ execfile [ corefile | process-id ] ]
每个命令行参数的具体含义可以参见dbx manual
使用dbx调试之前的准备
对于C++源码的调试,需要在编译可执行程序时,使用 –g 参数生成调试信息。
调试信息被包含在单个的obj文件中,这些信息指定了源代码文件的绝对位置,因此,如果源代码的存放位置发生了变化,需要用-I参数将新的源码位置提供给dbx,这样才能正确显示源代码。
dbx用法说明:
dbx的启动和载入待调试文件
常规调试,使用dbx启动待调试文件
用法:
dbx 可执行文件名
如果源代码位置与可执行文件编译时不同, 可以指定源代码路径启动dbx
dbx –I源代码目录 待调试文件名
挂接到运行的进程进行调试
dbx – 进程id
载入core文件进行调试
dbx – 核心转储文件名
当程序发生严重错误时(工作中遇到的绝大多数情况是因为指针访问越界,或者解引用无效内存地址,Unix内存保护机制引发了SIGSEGV信号,随后core dump),unix会将当前的内存映象保存到一个core文件中,它的文件名一般就是”core”,dbx可以读取分析这些core文件,查看变量的值,了解当崩溃发生时,程序的状态。
dbx调试命令
运行程序:
run命令, 后可跟命令行参数
设置断点:
stop at 文件名:行号
dbx提示:(2) stop at main.cpp:12
stop in 函数名
dbx提示:(3) stop in foo(int)
清除断点:
clear
如果不加参数,clear清除当前位置的所有断点
clear filename:breakpoint
清除指定文件行的断点
delete
delete all 删除所有断点
继续执行
cont
当前程序从断点恢复运行
单步执行:
step
单步,遇到函数调用会跟踪进函数
next
单步到下一行代码,不会跟踪进函数
可以指定next要单步的行数, 如next 5
向后执行5行
列出源代码:
list
可以指定列出后面或者前面n行的代码,指令格式为
list+30或者
list -20
查看变量值:
print 变量名
如果print一个对象的属性或者表达式,会导致对应的程序代码被调用, 这有可能会影响被调试程序的状态, 因此要小心print的这种副作用
查看当前线程的堆栈帧:
执行:
where
dbx会显示一个堆栈帧,举例如下:
(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@1
[1] _poll(0xffbee240, 0x1, 0x3e8, 0x0, 0x3e8, 0x0), at 0xfe79d618
[2] _select(0x8, 0x0, 0x0, 0xffbee248, 0xfe7bf1bc, 0xffbee240), at 0xfe74d534
[3] _ti_select(0x7, 0xffbee407, 0x1194, 0xf4240, 0x0, 0x0), at 0xff19aa28
=[4] getMsgDelay_ftp_channel(title = 0x1185788 simxawdm, delay = 57, msgq = 0xffbef604, channelNo = 0), line 308 in newFtpInterface.c
[5] CSDHAdapter::processMsg(this = 0x1182c20), line 419 in b_launch.cc
[6] CSDHAdapter::startUp(this = 0x1182c20), line 383 in b_launch.cc
[7] main(argc = 6, argv = 0xffbef754), line 91 in hw_main.cc
(/opt/SUNWs
您可能关注的文档
- 2014届高三生物一轮复习专题课件:必修二 3-21 生物的变异类型.ppt
- 时间的计算3.21.ppt
- 2013.3.21和平国税纳税人培训学校 培训课件.ppt
- 2-04食堂卫生保证措施.doc
- 深圳南瑞PRS700U系统维护手册V2.04.doc
- 必修三第21课现代中国的教育.ppt
- 2.04业务蓝图草案.doc
- 3、21早会.ppt
- 53 СНТ2.04.14-2000设备和管线隔热层.doc
- 21.3.2一元二次方程解应用题——面积问题.ppt
- 2025年安徽工商职业学院单招职业技能测试题库带答案(典型题).docx
- 2025年洛阳科技职业学院单招职业技能测试题库带答案(新).docx
- 2025年荆门职业学院单招职业技能测试题库及答案(易错题).docx
- 2025年宣化科技职业学院单招职业技能测试题库(精练).docx
- 2025年包头职业技术学院单招职业技能测试题库带答案(新).docx
- 2025年江西工商职业技术学院单招职业技能测试题库带答案(精练).docx
- 2025年黑龙江农业经济职业学院单招职业技能测试题库精编.docx
- 2025年山东艺术设计职业学院单招职业技能测试题库带答案(基础题).docx
- 2025年陕西工商职业学院单招职业技能测试题库带答案(突破训练).docx
- 2025年承德护理职业学院单招职业技能测试题库【word】.docx
文档评论(0)