Visual Studio原生开发20条调试技巧(下).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文档。上传文档
查看更多
Visual Studio原生开发的20条调试技巧 (下) 【感谢@_ La_ Isla_ Bonita的热心翻译。如果其他朋友也有不错的原 或译文,可以尝试推荐 给伯乐在线。】 我的上篇文章 《Vistual Studio原生开发的10个调试技巧》引发了很多人的兴趣,所以我决定 跟大家分享更多的调试技巧。接下来你又能看到一些对于原生应用程序的很有帮助的调试技巧 ( 接着上一篇文章来编号)。这些技巧需要应用在Vistual Studio 2005 或者更新的版本中 (当然也 有一些适用于旧版本)。如果你能阅读本文中推荐的一些相关文章,就可以知道每一个技巧的更 多信息。 11.数据断点12.线程重命名13.给指定线程设置断点14. (粗略)估算执行时间15.数字格式 化16. (内存)数据格式化17 .系统DLL中断18 .加载符号表19.监测MFC 中的内存泄漏20.调 试ATL 技巧11:数据断点 当数据所在的内存位置发生变化时,可以通知调试器进行中断,但是每次只能 建4个字节这 样的硬件数据断点。数据断点只能在调试期间添加,可以通过菜单(DebugNew Break ointNew Data Break oint) 或者断点窗口来添加。 你可以使用内存地址或者地址表达式。尽管栈上和堆上的值你都可以看到,但是我认为当堆 上的数值发生变化时,这个功能才会更有用处。它对于识别内存损坏有很大的帮助。 下面的例子中,指针的值发生了变化,不再是它所指向对象的值。为了找出在什么地方发生 改变的,我在存储指针值的位置设置了一个断点,即 tr (注意必须在指针初始化之后)。数据 发生变化就意味着有人修改了指针的值,调试器发生中断,我就能找出是哪段代码引起的改变。 æ´å¤ç²¾å½©æ»ç¥è®¿é® 1 更多阅读: 1.怎样查明指针是否损坏内存 2.怎样查明指针在什么地方发生改变 技巧12 :线程重命名 在调试多线程应用程序时,线程窗口会显示 建了哪些线程以及当前正在运行的线程。线程 越多,想找到你想要的线程就越困难 (尤其是当一段程序被多个线程同时执行的时候,你不能确 切地知道哪个才是当前正在执行的线程实例)。 调试器允许修改线程的名字,可以在线程窗口使用线程的快捷菜单,给线程重命名。 æ´å¤ç²¾å½©æ»ç¥è®¿é® 2 也可以在程序里给线程命名,尽管有点棘手,而且必须在线程启动之后给它命名,否则调试 器会以默认命名规范将它重新初始化。定义一个线程,并用下面的函数重命名该线程。 更多阅读: 设置线程名字 (非托管) 技巧13 : 给指定线程设置断点 对于多线程应用程序来说,另一个有用的技巧就是给指定的线程,进程,甚至是计算机中的断点设 置过滤.可以通过断点的Filter命令来实现此功能. 调试器允许你指定线程名,线程ID,进程名,进程ID和机器名的任意组合(使用AND,OR,NOT) 来设置过滤。了解怎样设置线程名字也使得这项过滤操作变得更加简单。 更多阅读: æ´å¤ç²¾å½©æ»ç¥è®¿é® 3 怎样指定断点过滤器设置断点过滤 技巧14 : (粗略估算执行时间 在上一篇文章中,我有写关于Watch窗口中的伪变量,有一个没提到的是@clk,它用于显示 计数器的值,可以粗略地计算出两个断点之间的代码的执行时间,单位是微秒 (μS )。但是,千 万不要用这个方法来分析程序的执行效率,应该使用Visual Studio 分析工具或者性能计时器来 分析。 可以在Watch 窗口或者即时窗口添加@clk=0来完成对计时器的重置。因此要想估算执行一段 代码需要多长时间,可以按照下面的步骤来操作: 在代码块的开始位置设置断点在代码块的结束位置设置断点在Watch窗口添加 @clk程序进入 到第一个断点时,在即时窗口输入@clk=0运行程序直到执行进入代码块末尾的断点,查看Watch 窗口 @clk的值。 注意网上有一些技巧说在Watch窗口添加两个表达式:@clk和@clk=0,需

文档评论(0)

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

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

1亿VIP精品文档

相关文档