SoftProbe 软件调试方法及实现.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SoftProbe 软件调试方法及实现.pdf

SoftProbe 软件调试方法及实现 SoftProbe 软件调试方法及实现 李 云 Email: yunli.sharing@ Blog: 摘要 软件调试是一个很讲究方法的工作,好的方法能让一些看似复杂的问题变得出乎意料的简单。 反之,如果方法不当则会让你对它一愁莫展。 SoftProbe 是一种高效、实现简单的调试方法,能有效的发现多任务环境下的任务死锁点、监测 数据流的处理流程是否正常、任务的活动状态是否正常等问题。 关键词 SoftProbe 软件调试方法 实现 缩略语 CLI Command Line Interface (用户)命令行接口 END Enhanced Network Driver (VxWorks )增强型网络驱动 ISR Interrupt Service Routine 中断服务程序 RPC Remote Process Call 远程过程调用 ST System Test 系统测试(部) WDB Wind DeBugger 风河(公司)调试器 参考资料 模块化编程实现的一些探讨 2004-10-10 作者:李 云 1 令人头痛的软件调试 今天早上当我坐在办公桌前正在处理收到的电子邮件时,电话响了,是从 ST (System Team ) 打来的。ST 的同事向我们反映了我们的产品在昨天晚上采用Chariot 进行流量测试时所出现的问题, 需要寻求我们的帮助。于是,我放下手中的工作,赶到 ST 实验室。经过一些简单的测试,发现我 们的产品在昨天进行测试后出现了 IP 协议栈不能正常工作。当 Ping 产品的网络接口地址以及 IP 协 议栈的环回地址()时全部出现超时现象。 在进行进一步的问题诊断后,发现 END 能正常的接收和发送数据(这是通过查看 END 的相关 统计信息得出的结论),但是 IP 协议栈对于收到的数据却是无动于衷,问题会是出在哪儿呢?再查 看系统中各个任务的运行状态,似乎也没有什么不正常的,所有的任务运行真的正常吗? 后来,我将我们组的同事都叫来,一起分析问题可能出在什么地方,但还是不能对问题进行准 确的定位,这一 Bug 彻底的打败了我们。 您或许会想,将 Tornado 通过 WDB 连上不就能很快的对这一问题进行定位吗?很不幸,WDB 是采用 RPC 来实现的,也就是说它是基于 IP 协议栈的,协议栈都出问题了,Tornado 当然就没有 用武之地了。 █ 1 SoftProbe 软件调试方法及实现 这样的场面,我想您一点都不陌生。我们总是会碰到所能得到的调试信息不足以帮助我们定位 问题的这种状况,这是为什么?毫无疑问:因为系统太复杂,我们不可能预测问题将会出在哪里, 从而我们也不知道应当将适当的调试信息放在程序的什么地方。难道我们就只能这样了吗?当然不 是! 2 采用 debug_print 能解决问题吗 说到调试信息,我想您很快的会想到我们系统当中的 debug_print 。在需要调试信息输出时,通 过 CLI 我们将所关心模块的 FLAG 设置成 Detailed,于是这一模块的所有信息都会打印在终端上。 但 debug_print 存在以下的缺点(或是说在某些场合下根本不适用): 其实现机理是采用 printf 函数将所需要的信息打印出来,因此,它是一种比较耗时的调试 方法。在 debug_print 输出调试信息时,有可能不能完全模拟现实环境,如在 IP 协议栈上 采用 debug_print 这会造成系统对于 IP 包的吞吐量急剧的下降。

文档评论(0)

zhoubingchina + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档