还有谁没读过这本书?

 

本人摘自《Windows用户态程序高效排错》作者熊力的CSDN博客

http://blog.csdn.net/eparg/archive/2007/12/10/1926201.aspx

 

 

下面是我在网上收罗到的关于这本书的书评。看到大多数读者都很喜欢这本书,我觉得非常爽。不过话说闻过则喜,好评同时的批评,会让我从爽到飞。

比如有一个评论说到我下面的缺点,我非常同意。

"3,理论不够深入,找寻代码出错背后的根源,代码出错的一般规律,如何从工具,软件工程,代码上入手,尽量提前或避免问题的发生,如何利用代码智能检查bug,如何利用脚本等让bug快速重现,自动的定位错误,找寻根源,将调试bug难度大大降低,我想这些也应该属于解决问题的范畴."
 
书中讨论的都是问题发生后如何去解决,其实这已经是下策了。上策是防微杜渐。微软有一套非常完善的代码自动监测工具。这个工具nb到什么程度呢。有一次这个工具报了一个潜在的内存泄露危险,几个兄弟讨论了半天,硬是没有想出来为啥会泄露。后来仔细分析,才想到该内存泄露会在一个非常低概率的情况下发生。
 
详细的信息,可以参考:
http://www.microsoft.com/technet/archive/security/bestprac/secwinin.mspx?mfr=true
http://research.microsoft.com/users/jpincus/icsm.ppt 

下面是书评,排名大致按照发表的顺序。

 

===
其实很早就在csdn上看到《Windows用户态程序高效排错》这个标题,但是一直没有看具体的内容,今天兴起看了下,结果发现真是一本好书!!

原因如下:

1 这本书写的是:熊力 著,而不是: 熊力 编著!现在在国内很多作者都是ctrl+c和ctrl+v,然后用“编著”这个字眼来糊弄读者,相当的不负责任。那些书籍的内容都是大同小异,而且很多竟然直接抄袭网上的文章。而在看了这本书的目录后,我有一种惊喜的感觉:内容绝对原创!这些内容都是在网上找不到的。而且讲的都是涉及汇编调试的东西,这样的东西才能叫调试!

2 第一本讲windbg的用法的书籍,就我来说,我是第一次看到有纸版书籍介绍windbg的用法,虽然在网上有很多教程,但都不是很系统,而这本书却给出了详细的用法和案例。相当不错,因为windbg是一个很不错的调试器,无论是用户态还是在内核模式下。

3 这本书从汇编代码层来讲述调试的方法,这种技术正是网上的文章所欠缺,网络确实可以让我找到大部分的答案,但很多时候我都不是很理解,而且在程序出现错误,很多时候由于看不懂汇编代码而无法快速的确定错误的位置和原因,这样对自己开发有很多的局限性,比如在进行驱动开发时,我很多时候都是使用dbgPrint来打印错误,但是很多时候会遇到蓝屏的情况,这样就很难调试了,由于我原来对汇编级的调试基本都不懂,所以只能蒙混来猜测错误的位置,然后慢慢修改。
 
其实这本书的内容不能说以前没人会,只能说作者把一些重要的知识总结,把他自己的经验跟我们分享,这种精神是很值得我们敬佩的,书上的知识肯定很多人会,但很多牛人都由于很多原因没有把他们的经验分享出来,我知道写一本书需要很大的勇气和毅力,不但写出来后要经受读者的检验,在写的过程也是相当的辛苦的!!何况要写的是这样的一本具备很高技术含量的书籍!
 
我是一个刚毕业的学生,正在从事软件开发行业,在开发过程会遇到很多类似的问题,比如书里说的经典内存泄漏,线程问题等,而且在开发驱动的过程中,发现自己的调试能力有限,所以很多时候都没办法准确的定位问题的所在,这样大大降低了我的开发进度,而且对我自身的提高也有很大的限制,所以我很期待这本书,我相信它一定能够解决我在开发过程中遇到的大部分问题,能够让我的调试能力有新的提高。也许我的开发经验不是很多,但是我相信我的眼光肯定不会错的,毕竟现在中国人原创的书籍能够涉及这么底层的也不多了。
赖先生
2007年11月于广州

===
      收到一本关于讲程序排错的书(PDF)——《windows用户态程序高效排错》,作者是上海微软技术支持中心的一个员工。翻了几页,感觉条理很清晰,案例也很经典,想必作者对调试Windows用户态程序的BUG应该是家常便饭,也应该是一个细心之人。
 
      回想起自己以前学编程,开始甚至根本不知道什么叫软件调试。有一次,一个其他学校的朋友过来帮我写课程设计,其中就用到了“打印输出”的排错,这是我学到的程序调试或者说是排错的第一招。慢慢的,相继学习了很多调试技术,接着进入了MFC类库。我认为,在一个开发团队,只要够细心,也可以学到他人的很多调试技术。在绘图的时候,拉橡皮条调试进入断点程序跑到后台,f5程序然后再进入前台,屏幕立即刷新,BUG根本就没机会看到,这时候学会了分屏调试,也开始揣测“为什么牛人们需要两个显示器进行调试”的原因了。
 
      调试作为一种与具体开发联系很紧密的技术,应该是每个程序员都必须掌握的。然而在大学中不可能开设这样的课程,很多老师也不懂调试。曾经看到一个老师这样修改bug:程序崩溃,找到一段代码然后告诉我们“可能是这里出错”,然后修改运行(这个绝对不是调试)。我也不敢想象他做开发的效率,也无法想象他的代码质量。
 
      在这里推荐这本书,首先这本书案例是实际开发中遇到的,作者思路张弛有度,文中既有技巧也有心得。这本书(PDF)只写了2章,作者希望读者提出反馈意见,以便继续写下去。现在在CSDN读书频道得知博文视点即将出版这本书,作者也已经对内容进行了完善,对此我相当期待。
连先生(万星星)

===
我算是从头到尾关注这本书的少数人之一吧,最早知道熊力的《Windows用户态程序高效排错》这本书,是在去年6年,当然,当时还不叫这个名字,叫graepf的《个人总结的调试文章》(呵呵,差别很大吧),初见是在某论坛上,那时的我对论坛上的这类文章大多持怀疑态度,不过从第一眼看到文章里提到的那些实例,感觉就是找到宝藏,那份惊喜不亚于看到John Robbins的《.NET和Windows应用程序调试》,同时因为中文的原因,觉得读起来非常解渴,尤其是对session lost的讨论,如同在我眼前开了一道大门,从理论到实际,对session的深入理解,催生了具体的处理情况,尤其是对情况的分析,循循善诱,对像我这样一出bug就感觉无从下手的人来说,就像明灯一样指明了如何解决问题的道路。继续读下去,对内存泄露的话题,熊力依旧是举重若轻,MSDN中的kb,各种实际案例信手拈来,可以看出都是厚积薄发,尤其是对案例的反汇编代码的解说详细精到,同时娴熟的运用WinDbg加以分析,更是让人大呼过瘾,不忍释卷。到了今年初的时候,一个偶然的机会得到了该书的内部电子版,因为我的工作方向发生了变化,所以很遗憾没有向熊力提供更多的反馈,不过即使略读一番,对这本书仍是更加期待,不想一等又是半年,终于看到本书即将出版,一年多的等待终于有了结局,希望能有更多喜爱系统底层,喜欢探究系统奥秘的人来看看这本中国人自己的《.NET和Windows应用程序调试》!
 
今天看了John Robbins的Blog,很遗憾的看到了他决定不再将精力放在写书上面,原因是书籍出版业的衰退和日趋严重的盗版,原本计划的一本有关Native C++ Debugging的书也将放弃写作计划,希望熊力的这本书不会是Win32 Debugging Book的最后一本吧。

sPhinX
===
如今软件开发模式已经有很大的变化,源代码满天飞,很多工作无非就是修修补补,大多数应用软件开发工程师接触到的软件项目源码都是已经有了基本成型的代码,而主要工作则集中在代码维护,也就是调bug,调性能,和代码重构上.从这一角度看,代码调试应该是绝大多数人的工作重点,所以这本书是有非常实用的.
 
大概看了一下前两章内容,写的和实际贴合很紧,很容易上手,强烈支持作者. 根据我自己调试的经验我提出以下几个看法,不吝赐教:
 
1,调试能力实际上是一个综合能力,从大方面看,逻辑分析,知识方面包括:操作系统,编译原理,计算机系统,算法,软件本身实现架构乃至代码细节,编程语言,软件使用的类库,工具,已解决问题的积累,还有运气都将决定解决问题的过程,学习->实战->学习,本着大无畏,客观分析的态度,问题是一定能解决的,而且会解决的越来越快的.实践在提高的过程中起决定作用,当然,实际不仅仅局限在调试本身.
 
2,本书设计面较窄,实际上现在有很多学友并非集中在windows下开发,比如我,以前在windows下做开发,搞了7年多,现在改做嵌入式linux开发,工具不同,需要补充很多知识,gdb,arm cpu, at&t asm code, 不过好在很多技巧是相通的,先学好一个平台,一套调试手段,将来也能很快适应
 
3,理论不够深入,找寻代码出错背后的根源,代码出错的一般规律,如何从工具,软件工程,代码上入手,尽量提前或避免问题的发生,如何利用代码智能检查bug,如何利用脚本等让bug快速重现,自动的定位错误,找寻根源,将调试bug难度大大降低,我想这些也应该属于解决问题的范畴.
 
4,对工具的使用,个人觉得windows下还有很多优秀的调试工具,其中首推softice.如果能针对它们的使用技巧加写章节,可能会更好. 博采众家所长,涉及调试的各方面的内容的书籍才会有更多的读者研读.期望作者能尽早出下一版,呵呵.
 
http://www.ohyee.net/
===
推荐一本好书《Windows 高效排错》
首先是内容介绍,摘自CSDN读书频道:


我自己看了这部书演示用的pdf的一些感想:

用真实的案例来讲解troubleshooting和debug的步骤和过程,生动而又有深度

作者思路极为清晰,表达精准到位,能从一点点地蛛丝马迹抓起,直到起出问题根源,这种经验与技术俱佳的案例分析能让读者看完即涨大量exp,有如亲历从debug入手来抓程序设计症结,这应该还算是国内首次有实体书出版,对于windbg的使用讲解也算是开先河了

同时适用于程序员以及系统管理员二种读者,程序员可以从中掌握一些操作系统级别的资源分配和使用原理,并通过对此的理解来使得自己代码中对于资源的使用有更加深刻的认识。而SA们也可以由此学到从系统方面剖析用户态程序的方法,从而使自己对资源的掌控能深入到应用软件层面,可以更好地维护系统的健康状况以及给应用设计提出更好地建议

跳开Windows和.net范畴,书中的很多案例的思路其实可以用于更广泛的领域,对于其他操作系统以及其他框架来说,都可以有触类旁通的感悟。

我看过其演示pdf之后,就决定着本书一定要买来一读了,而对此类知识感性趣的人,也绝对应该看一下此书。

http://dawnh.net/windows/277/windows-usermodetspaper/
===

才看了几十页,总结一下优点:

1、全书不厚,免得一拿到手就是砖头,一读就是几个月。

2、没有废话,内容精练,字字在理,适合细细品味,不能一目十行。阅读时最好将WinDBG帮助打开,随时查阅。

3、作者调试经验丰富,介绍的案例个个扣人心弦,让我欲罢而不能。什么叫会用WinDBG,作者会告诉你答案。

4、一本好书是内容与外表的完美结合,两者缺一不可,这本书全做到了,封面设计和排版等非常不错,赏心悦目。

 抓紧时间看完:)

posted @ 2008-07-22 10:14  Chinaren  阅读(402)  评论(0编辑  收藏  举报