记得几年前我们公司对一款核心产品进行升级,测试人员发现了一个会导致整个程序崩溃的BUG。这个BUG在程序的运行过程中随机出现,很难重现。更为棘手的是,当开发人员用VC以调试模式运行该程序,BUG就再也不重现了。根据以往的经验,这种情况多和多线程处理导致缓冲区非法操作有关,调试器引起的“海森堡效应”则会导致程序在这种情况下可能无法重现BUG。开发人员之前常用的LOG定位法在多线程程序中也显得力不从心,线程的交错运行使得LOG根本无法在程序崩溃的时候定位到正确的位置。当时已经是产品发布的前夜,重新检查可疑的相关代码已经不可能了,工作量太大,时间不够用。于是我们只好试图改变调试手段来解决问题。当我们尝试了一种可行的调试方法后,BUG迎刃而解,从定位到代码修复完成总共花了不到十分钟。方法很简单:当程序崩溃的时候,对程序进程附加上调试器,根据调用堆栈分析可能引发缓冲区问题的位置,然后通过在源码中对应的位置加上“__asm int3”语句使程序可以在运行时激发调试器,继而对将要引发异常的内存区域设置读写断点,在激发断点后终于顺藤摸瓜找到了罪魁祸首。而在此之前我们已经在门外摸黑乱撞了两个小时!
正确可行的调试技巧在软件开发中是如此重要,奇怪的是这个事实在多数开发者那里并未引起足够的重视,也许是“Debug”更多时候是和“Reverse Engineering”这个神秘的名词画上等号而显得有些高深莫测,使得一般的开发人员和初学者望而生畏踟蹰不前。前几天收到了机械工业出版社出版的一本《Windows高级调试》,原以为是给分析人员使用的工具用书,仔细翻阅了几章,却发现并非如此。这本书更多的是面向一般的开发人员和测试人员。书中通过融入一个个实际例子当中的调试过程和技巧,由浅入深的讲解操作系统的内部运行机制和调试的基本原理。深入阅读,你会发现Debug不再是hacker 手中的“奇技淫巧”,而是软件开发过程中的有力工具。对于有经验的分析人员,这本书同样值得一读。相信书内清晰的描述和深入的分析能够印证你对操作系统底层构架的理解,在调试技术上给予启发。
调试体会
对“调试体会”的回应
《Windows高级调试》热门书评
-
调试体会
8有用 0无用 豆豆 2009-07-06
记得几年前我们公司对一款核心产品进行升级,测试人员发现了一个会导致整个程序崩溃的BUG。这个BUG在程序的运行过程中随机出现,很难重现。更为棘手的是,当开发人员用VC以调试模式运行该程序,BUG就再也不重现了。根据以往的经验,这种情况多和多线程处理导致缓冲区非法操作有关,调试器引起的“海森堡效应”则...
-
这本书不错
2有用 0无用 binbin 2009-08-05
软件测试大师Boris Beizer 博士曾经说过:“测试的目的是显示存在错误,而调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动。”可见软件的测试与调试是分不开的是相辅相成的...
-
总的说来帮助不大
1有用 2无用 类库大魔王 2009-10-24
不过可以作为科普读物来阅读。如果想要提高自己的调试能力,应该拿windbg的帮助手册,并多进行实践,此书能提供的帮助实在不大。...
-
Advanced Windows Debugging
0有用 0无用 涅瓦纳 2011-07-31
The First In-Depth, Real-World, Insider’s Guide to Powerful Windows DebuggingFor Windows developers, few tasks are more challenging than debugging—-or...
-
太贵了
0有用 0无用 HACKACE 2012-06-07
太贵了,国内买600多呢,300多考虑买一本,只能看EBOOK了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
书名: Windows高级调试
作者:
出版社: 机械工业出版社
译者: 聂雪军 | Daniel Pravat
出版年: 2009-5
页数: 500
定价: 79.00元
装帧: 平装
丛书: 开发人员专业技术丛书
ISBN: 9787111266396