C/C++代码调试的艺术

张海洋
内容提要 本书围绕C/C++程序调试这一主题,系统深入地介绍了在Windows和Linux操作系统上如何高效地调试C/C++程序。 本书分为11章,内容涵盖了程序调试的基本知识、Visual C++调试程序的基本功能与技巧、Linux系统中gdb工具的使用、死锁调试、动态库调试、内存泄漏检查、远程调试、崩溃转储文件分析、发行版调试,以及调试的高级话题和调试扩展方面的知识。 本书作为学习C/C++调试技术的重要资料,讲解通俗易懂,选取的示例注重理论与实际的联系。无论是C/C++的初学者,还是经验丰富的开发人员,都会从中受益。 作者简介 张海洋,云坞科技联合创始人,清华大学计算机专业毕业,从事软件开发近20年,曾在外企工作10多年,长期工作在开发第一线。当前已经在国内外申请软件发明专利10多项;精通C/C++、Python等语言,在Windows/Linux驱动、Windows/Linux系统开发和调试方面具有丰富的经验。 前言 ——“有人的地方就有江湖,有软件的地方就有BUG。” 比尔·盖茨在1998年演示Windows 98操作系统的时候,突然出现蓝屏,但是他一点也不惊慌,因为他知道这就是真实的软件世界。 盖茨表现淡定还有另外一个原因,那就是在Windows蓝屏以后,会生成崩溃转储文件,软件工程师可以根据该文件来分析蓝屏的原因,能够快速地定位并解决BUG。 为什么写作本书 在C/C++领域工作的这10多年里,令我印象深刻的并不是使用C/C++去实现一个复杂的功能有多么困难,而是解决一个看似微不足道的BUG并不像我们想象的那么容易。很多读者可能也有这个体会,长时间地熬夜加班,并不是为了完成一项重大的任务或者一个新功能,而通常是为了解决一个不容易发现的BUG—这个BUG可能是别人留下的,也可能是自己留下的。C/C++开发人员通常有很强的代码编写能力,可以完成复杂的任务…