张银奎:是的,书名叫《软件调试》。首先,这本书全面讨论了软件调试的一般原理,包括cpu、操作系统和编译器是如何支持软件调试的,内核态调试和用户态调试的工作模型,以及调试器的工作原理。软件调试是计算机系统中多个部件之间的一个复杂交互过程,要理解这个过程,必须要了解每个部件在其中的角色和职责,以及它们的协作方式。学习这些原理不仅对提高软件工程师的调试技能至关重要,而且有利于提高它们对计算机系统的理解,将计算机原理、编译原理、操作系统等多个学科的知识融会贯通在一起。 《软件调试》的第二个目标是交流软件调试的方法和技巧。包括调试用户态程序和系统内核模块的基本方法,如何诊断系统崩溃(bsod)和应用程序崩溃、如何调试缓冲区溢出等与栈有关的问题,如何调试内存泄漏等与堆有关的问题。特别是,我们非常全面介绍了windbg调试器的使用方法,给出了大量使用这个调试器的实例。 另外,《软件调试》探讨了可调试性(debuggability)的内涵、意义和实现软件可调试性的原则和方法。所谓软件的可调试性就是在软件内部加入支持调试的代码,使其具有自动记录、报告和诊断的能力,可以更容易调试。软件自身的可调试性对于提高调试效率、增强软件的可维护性,以及保证软件的如期交付都有着重要意义。软件的可调试性是软件工程中一个很新的领域,本书第一次对其进行了深入系统的探讨。 图一 基于以上目标,《软件调试》分6篇30章进行了讨论。第2、3、4篇侧重调试原理,第5篇讨论可调试性,第6篇介绍软件调试的核心工具——调试器。 记者:我有一个问题,按您上面讲的主要是关于windows 和intel这个平台的,对于不是这个开发平台,是否会有帮助呢? 张银奎:大体来说,基本调试功能的工作方式和工作原理是基本一致的,但对于不同的cpu架构和操作系统,其实现细节是有差异的。因此,对于使用其它平台的读者,可以学习原理部分,参考和借鉴与平台相关的部分。 记者:最后,您能否介绍一些关于调试技术的书籍? 张银奎:与编程语言和其它计算机技术书籍的数量相比,关于调试的书还很少。首先john robbins所写的《microsoft.net 和windows 应用程序调试》(debugging applications for microsoft .net and microsoft windows)很适合初学windows用户态调试的读者阅读。 advanced windows debugging是另一本讨论windows调试的书,重点讨论了几类常见的调试问题,如内存、安全、进程间通信等。该书是2007年十月出版的,目前还没有中文版。再有就是我写的《软件调试》,有兴趣的朋友可以先通过以下链接来了解更详细的介绍和阅读样章:。 (责任编辑:admin) |