第4章 Visual C++调试技术

第4章 Visual C++调试技术

ID:42922911

大小:94.00 KB

页数:18页

时间:2019-09-25

第4章 Visual C++调试技术_第1页
第4章 Visual C++调试技术_第2页
第4章 Visual C++调试技术_第3页
第4章 Visual C++调试技术_第4页
第4章 Visual C++调试技术_第5页
资源描述:

《第4章 Visual C++调试技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4章VisualC++调试技术在开发程序的过程中,经常需要查找程序中的错误,程序调试是一项复杂而苦恼的工作,它需要程序员具有足够的耐性。程序中的一个小错误可能会花费大量的时间才能发现和解决,这就需要利用调试工具来帮助开发者进行程序的调试。VisualC++中集成了功能强大的调试工具,提供多种调试方案,可以帮助程序员更加有效地调试程序。本章将对VisualC++中的调试工具和技术作详细介绍。4.1Debug与Release当编译应用程序时,开发者可以选择两种目标之一:Debug和Release。Debu

2、g通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。4.2调试的过程调试实际上就是在程序运行过程的某一阶段观测程序的状态,而在一般情况下程序是连续运行的,所以必须使程序在某一地点停下来。所以开发者所做的第一项工作就是设立断点。其次,再运行程序,让程序在设置的断点处停下来,再利用各种工具观察程序的状态。下面将按照这个思路,来介绍程序调试的过程。4.2.1设置断点断点是调试

3、器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。断点提供了一种强大的工具,使开发者能够在需要的时间和位置挂起执行。与逐句或逐条指令地检查代码不同的是,可以让程序一直执行,直到遇到断点,然后开始调试。这大大地加快了调试过程。没有这个功能,调试大的程序几乎是不可能的。在程序中设置断点的方法有以下几种。4.2.2控制程序的运行前面讲述了如何设置断点,下面来介绍如何利用断点控制程序的运行。VisualC++允许正在调试的程序继续运行、单步运行、运行到当前光标处。4.3使用查看工具调试过程中,

4、开发人员要想找出程序的错误之处,必须能够观察程序在运行过程中的状态。程序状态主要包括各变量的值、寄存中的值、内存中的值、堆栈中的值。VisualC++提供了许多工具来帮助开发人员查看程序的状态。经常使用的工具有观察窗口(Watch)、快速查看窗口(Quickwatch)、变量窗口(Variables)、寄存器窗口(Register)、内存窗口(Memory)、调用栈窗口(Callstack)等。本节将对这些常用的工具作详细介绍。4.3.1弹出式调试信息泡泡当程序在断点停下来后,要观察一个变量或表达式的值

5、时,最容易的方法是利用调试信息泡泡(DataTipsPop_upInformation)。要看一个变量的值,只要将鼠标放到该变量上,就会看到一个信息泡泡弹出,显示出该变量的值,如图所示。4.3.2变量窗口在VisualC++中,执行【View】

6、【DebugWindows】

7、【Variables】命令,变量窗口(VariableWindow)将会出现在屏幕上,如图所示。Name一栏显示变量名称,Value一栏显示变量对应的值。在变量窗口的下部有3个选项卡:Auto、Locals、this。选择不同的选项

8、卡,不同类型的变量将会在该窗口中显示。4.3.3观察窗口在VisualC++中,执行【View】

9、【DebugWindows】

10、【Watch】命令,观察窗口(WatchWindow)将会出现在屏幕上,如图4.14所示。在观察窗口中双击Name栏的某一空行,输入要查看的变量名或表达式然后回车,将会在Value栏中看到该变量或表达式的值。随着程序的逐步执行,将显示该变量或表达式值的变化。4.3.4快速查看窗口在VisualC++中,执行【Debug】

11、【QuickWatch】命令,快速查看窗口(QuickW

12、atch)将会出现在屏幕上,如图4.15所示。4.3.5内存查看窗口在VisualC++中,除了可以查看变量和表达式的值,还可以查看内存中的值。4.3.6寄存器窗口在调试过程中,有时需要查看或修改寄存器中的值。VisualC++提供了寄存器窗口来完成这项工作。4.3.7调用堆栈窗口首先读者应该了解什么是调用堆栈。假设有这样几个函数,分别是function1()、function2()、function3(),且function1()调用function2(),function2()调用function3

13、()。在function3()运行过程中,可以从当前堆栈中了解到调用它的那几个函数分别是谁。把函数的顺序关系看做为function3()、function2()、function1(),这样呈现出一种“堆栈”的特性,最后被调用的函数位于最上方,因此称这种关系为调用堆栈。4.4其他调试技术前面已经讲述了常规的调试方法及常用调试工具的使用,这些调试工具通常在其他编程环境中也有。除此之外VisualC++还提供了一些特有的、更高级的调试工具。在后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。