调试器 完成设计和编码后,即开始调试程序,这是软件开发的第三步
一个 3000 行的程序,其编译可达到没有一个警告,然而在运行时却可能崩溃,更糟糕的是,运行只是偶尔崩溃
当程序不能顺利运行,而又不知道问题的症结所在时,就该使用调试器来监视此程序的运行了
Visual C++调试器是整个产品中最具特色的一部分,省时省力,简单易用,它可以帮助找到在 Windows 软件开发过程中可能遇到的几乎一切故障
但调试程序就像科学一样,它需要技术,需要有清醒的头脑和良好的洞察力,调试器就像显微镜一样,因为它能扩大你的视野,但你必须知道所查找的症结
动态链接库,包括Active X 控件,对Visual C++调试器来说,并不是特殊的情况
调试器轻松跨越两个项目之间的边界时,即意味着可以开始调试项目中的程序,然后,当此程序调用动态链接库中的外部函数时,继续进行调试,即使该库和它的源文件存在于另一项目或子项目中,反之亦然
在动态链接库的项目中,可以启动调试会话
在这种情况下,调试器自动运行所调用的应用程序,并且,当执行流执行了某一库函数时,就会将控制权返回给用户
调试器能够处理多线程和 ActiveX 应用程序,并且有能力在调试程序的计算机上运行
在以后的章节中,我们将会看到这些特殊的情况
首先,让我们先熟悉一下调试器
调试与发行 Visual C++中的程序能产生两种类型的执行代码,称为调试与发行版本,或称之为“目标”版本
调试版本是软件开发和检测修改程序的部分,发行版本是最终的结果,将发行给客户
调试版本较之发行版本要大,运行起来要慢一些
编译器在目标文件中填满了符号信息,这些符号信息记录了编译器知道的函数名、程序中的变量名和标识的内存地址
通过读取源文件和包含在执行文件中的符号信息,调试器能将源代码中的每条流线同相应的可执行映像中的二进制指令联系起来
调试器运行可执行文件,但必