1、第 26章 应用程序的调试和异常处理当使用任一门语言写程序时,最初都会有错误。这就需要调试。一般写程序会犯两种错误:语法错误和逻辑错误。语法错误比逻辑错误简单,通常开发环境或者编译器能够指出。但是逻辑错误不易识别,会导致程序功能错误。本章知识点主要包括:集成开发环境的调试功能断点和单步执行Watch 功能Threads和 Exceptions功能检测内存泄漏26.1 集成开发环境的调试功能Visual Studio开发环境可以集成式调试程序,在开发环境的 【 Build】 菜单的子菜单 【 Start Debug】 子菜单中选择 【 Go】 、 【 Step Into】 、 【 Run to
2、Cursor】 、 【 Step Out】 命令。然而,在启动调试程序之前,必须确保 Visual C+编译了通过调试信息的应用程序。26.2 使用断点和单步执行本节讲述如何使用 “断点 ”和 “单步执行 ”等方法进行程序调试。创建一个 Win32 控制台项目 “Debug”,用于本章的学习。26.3 调试时使用 Watch功能单击 Debug工具条上的 Watch 按钮,就出现一个 【 Watch 】 视图。在该视图中输入变量或者表达式,就可以观察 变量或者表达式的值。注意:这个表达式不能有副作用,例如 +运算符绝对禁止用于这个表达式中,因为这个运算符将修改变量的值,导致 软件的逻辑被破坏。
3、对于指针指向的数组, Watch 只能显示第一个元素的值。为了显示数组的后续内容,或者要显示一片内存的内容,可以使用memory功能。在 【 Debug】 工具条上,单击 memory按钮,就弹出一个对话框,在其中输入地址,就可以显示该地址指向的内存的内容。26.3 调试时使用 Watch功能26.4 调试时使用 Threads和 Exceptions对话框Windows32 位程序设计环境是一种多线程环境。多线程应用程序的调试使调试过程变得更困难。 Visual C+调试程序包括 Threads对话框,当调试应用程序时,使用该对话框将焦点设置给程序内的一个具体线程。26.4 调试时使用 Th
4、reads和 Exceptions对话框26.5 检测内存泄露检测内存泄漏的主要工具是调试器和 CRT 调试堆函数。若要启用调试堆函数,请在程序中包括以下语句:01 #define CRTDBG_MAP_ALLOC02 #include 03 #include 26.6 堆栈的利用和异常处理堆栈在程序调试过程中起的作用很大,尤其是在程序出现错误或者异常的时候,堆栈可以使程序员迅速找到错误的代码段,从而进行修正。26.7 小结本章主要讲述了应用程序的调试和异常处理。首先介绍了开发环境的调试功能,使用断点和单步执行,使用 Watch 功能,调试时使用 Threads和 Exception功能,监测内存泄漏,堆栈的利用和异常处理。本章的重点是 “使用断点 ”、 “单步执行 ”、 “内存泄漏 ”、 “堆栈的利用和异常处理 ”。下一章讲述一个范例 “小型饭店餐饮管理系统 ”。