《软件调试》导读之绪论篇
《软件调试》的第1篇名为“绪论”,只包含一章,共26页,是全书最短的一篇。
第一篇要实现的几个目标是:
1)介绍基本概念和术语,为后面各篇打基础和做铺垫。比如,1.1.1节给出了Bug和Debug的定义,1.6节详细的讨论了BUG,1.4节介绍了常见的软件调试型态。
2)浏览本书要介绍的主要调试技术,比如,1.5节分10个专题(三级小节)浏览了本后后面要深入讨论重要调试技术。
3)突显软件调试技术的关键特征和重要性,1.2节(基本特征)和1.7节(与软件工程的关系)都是服务于这个目的的。
读者在阅读第1篇时,建议认真阅读以下几个内容:
1.1.2节(P5)中的软件调试基本过程。这一内容虽然很基本,但是很重要。熟悉和遵循这个基本过程是对调试高手的最起码要求。如果不遵循这个基本过程,有时候就会白白浪费很多时间。比如,有些人没有在自己的调试环境下重现问题就开始跟踪代码,跟踪了几个小时后才发现原来问题根本不会在这个系统中发生,或者跟踪的版本就不对。
1.2节中的软件调试基本特征。在写作这一内容时,我列出了很多个特征,然后进行筛选和提炼,最终归纳为三大特征:难度大、难以估计完成时间和广泛的关联性。理解软件调试的这三个特征对于学习软件调试和在实践中解决软件问题都很重要。因为软件调试技术与其它技术有着广泛的关联性,所以学习软件调试时必须本着海纳百川的心态去博学,而不能期望要用什么就学什么。因为“难以估计完成时间”,所以大家在工程实践中,面对一个软件调试问题时,不能轻易“拍胸脯”,不到有十足把握时,不能下断言。
1.3节中的软件调试简要历史。两年前,某本杂志在做软件调试专题时,想找人写篇文章介绍软件调试的历史,找到我,我说深知这个内容不好写,而且当时没有时间,便推迟了,编辑很有信心的去找别人,但是始终没有找到。的确,还没有人仔细为软件调试编写历史,很多调试技术是何时出现的还没有定论。考虑到了解历史的重要性,《软件调试》有意做了很多努力,1.2节介绍了断点、跟踪和分支监视的历史,28章介绍了调试器的历史,第29章介绍了WinDBG的发展历史,另外,在书中的其它章节中,也尽可能给出所介绍技术或者工具的时间信息。《软件调试》的这些历史性内容在其他书中是很少见的。阅读这些内容,有利于更深入的理解调试技术。
从写作时间角度来看,第一篇是在后面5篇大局已定后才写的,不过在考虑篇章结构时早已经预留好这一篇。
概而言之,第一篇是很容易理解和阅读的,对于初学者来说,应该完整阅读全篇的内容,特别是1.1节和1.5节。对于其它读者,那么建议仔细阅读1.2(特征)、1.3(历史)、1.6(对“错误与缺欠”的思考)和1.7节(关联性),浏览其它各节。