网站大量收购独家精品文档,联系QQ:2885784924

dbx调试程序培训资料V2.00.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档