实验4:c++调试_第1页
实验4:c++调试_第2页
实验4:c++调试_第3页
实验4:c++调试_第4页
实验4:c++调试_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VC程序调试2VC+编程环境 Debug(调试) 当程序出错时,可用调试工具发现错处的代码,并进行改正。 所谓调试是指: 逐条执行程序代码,并在执行过程中查看变量的值。 当发现变量的值并非如我们预期或程序的执行逻辑并非我们预期时,就发现了错误,可以进行有针对性的改正。 Visual C+的菜单栏的菜单栏-Project菜单菜单Set Active Project选项选项 设定指定的项目为工作区的活动项目 Settings选项选项 选择该选项将弹出Project Settings对话框,其中 General选项卡选项卡用来设置基础类用法和目录。 Visual C+的菜单栏的菜单栏-Project

2、菜单菜单指出应用程序如何与指出应用程序如何与MFC链接的链接的指出用来建立应用程序的指出用来建立应用程序的位置(缺省为位置(缺省为Debug)输出文件的位置输出文件的位置该菜单用于编译、建立和执行应用程序。Visual C+的菜单栏的菜单栏-Build菜单菜单2. Build选项选项 对最后修改过的源文件进行编译和链接1.Compile选项选项 只编译当前文件而不调用链接器或其它工具。输出窗口将显示编译过程检查出的错误或警告信息,在错误信息处单击鼠标右键,可以得到错误代码的位置3. Rebuild All选项选项 该选项允许用户编译所有的源文件,而不管它们何时曾经被修改过2. Build选项选

3、项 对最后修改过的源文件进行编译和链接1.Compile选项选项 只编译当前文件而不调用链接器或其它工具。输出窗口将显示编译过程检查出的错误或警告信息,在错误信息处单击鼠标右键,可以得到错误代码的位置3. Rebuild All选项选项 该选项允许用户编译所有的源文件,而不管它们何时曾经被修改过Win32 Release(发行版)、Win32 Debug(调试版)。VC提供了两种目标应用程序类型程序类型Visual C+的菜单栏的菜单栏-Build菜单菜单Batch Build选项选项 该选项能单步重新建立多个工程文件,并允许用户指定要建立的项目类型程序调试例子步骤: 调试运行 单步跟踪 单步

4、跳进跟踪 观察自动变量 观察其他变量 停止调试调试计算5的阶乘#include int main() int i=1; i = i*2; i = i*3; i = i*4; i = i*5; printf(“value of i is: %d”,i); return 0; 1:打开jiecheng项目(双击jiecheng.dsw文件) 2:build该项目,确定程序可以运行 3:调试运行阶乘程序 4:设置断点 5:再次调试运行程序 6:使用单步执行程序到结束1:打开jiecheng项目2:Build该项目,确定程序可以运行3:调试运行阶乘程序Go4:设置断点 将鼠标停留在程序的第8行,在第8

5、行的任意地方单击鼠标左键(第8行即“i = i*4;”) 在工具栏上选择 按钮,为第8行设置断点,以便让程序在此处暂停运行5:再次调试运行阶乘程序 注意观察,现在调试运行程序会如何?Go5:再次调试运行阶乘程序(续)程序暂停之处调试(Debug)工具:控制程序前进步伐查看程序当前状态6:使用单步执行到程序结束 设置断点以后,调试运行程序时,程序开始执行,并且运行到断点处暂停下来,此时我们有机会观察程序的运行情况,并且诊断程序目前的状态是否如我们所预期的那样。 不过我们先不着急观察程序的状态,而是来看看如何控制程序的运行,以便在我们需要的时候让程序暂停下来,并且以我们需要的方式走走停停!6:使用

6、单步执行到程序结束 程序停下来了,如何让程序从暂停的地方继续向前执行? 方法是使用单步执行手段(Step Over)让程序向前走一步停止调试停止调试并重新启动调试单步执行当前位置熟悉调试工具栏和菜单(只在调试运行时出现)对比调试运行时出现的调试菜单“Debug”和调试工具栏,根据图标查找对应项观察自动变量自动变量观察变量的值及其随程序运行时的变化情况 设置断点,调试运行程序,此时程序暂停在断点处等待 选择Debug菜单,找到最后一项“Quick Watch”并点击输入想要观察的变量变量名变量的值点击Add Watch点击Add watch,看到如下画面调试观察每一步骤变量i的值 点击单步执行按

7、钮或者菜单,程序则向前单独运行一个步骤 每向前执行一步,就会暂停下来,这样我们就有充足的时间观察所关心的变量名称 观察变量i的值的情况注意在调试过程中 断点不能设置在空白行上面 添加断点和删除断点的方法一样 一个程序中可以设置多个断点 按下F5键可以让程序从当前位置向前执行,直到遇见下一个断点或者程序结束其它一些调试技术Visual C+的菜单栏的菜单栏-Edit菜单菜单断点分为:位置断点位置断点数据断点数据断点消息断点消息断点用来用来设置设置删除删除和和查看查看断点断点 Breakpoints选项选项Visual C+的菜单栏的菜单栏-Edit菜单菜单位置断点位置断点通常在通常在源代码源代码

8、的指定行的指定行、函数的开始函数的开始或或指定的内存地址处指定的内存地址处设设置置,当程序执行到指定,当程序执行到指定位置时,位置断点将中位置时,位置断点将中断程序的执行断程序的执行在位置断点中还可以设置断在位置断点中还可以设置断点条件,此时必须先指定位点条件,此时必须先指定位置,然后再设置条件断点置,然后再设置条件断点数据断点数据断点是在是在变量变量或或表达式表达式上设置,上设置,当当变量变量或或表达式表达式的的值值改变改变时,数据断时,数据断点将中断程序的执行点将中断程序的执行消息断点消息断点是在窗口是在窗口函数函数WndProc上设上设置,当接收到指定置,当接收到指定的消息时,消息断的消

9、息时,消息断点将中断程序的执行点将中断程序的执行位置断点位置断点:可以为断点设置一个条件,有两种类型:1.一种是根据预置的条件来设置2.另外一种是根据触发的次数来设置根据预置的条件来设置 可以单击Conditions按钮,为断点设置一个表达式。当这个表达式为真时,程序就 被中断。根据触发的次数来设置 可以单击Conditions按钮,为断点设置触发的次数。当达到触发的次数时,程序就 被中断。数据断点 数据断点:数据断点只能在Breakpoints对话框中设置。选择“Data”页,就显示了设置数据断点的对话框。在编辑框中输入一个表达式,当这个 表达式的值发生变化时,数据断点就到达。一般情况下,这

10、个表达式应该由运算符和全局变量构成,例如:在编辑框中输入 g_bFlag这个全局变量的名字,那么当程序中有g_bFlag= !g_bFlag时,程序就将停在这个语句处。 消息断点 消息断点:VC也支持对Windows消息进行截获。他有两种方式进行截获:窗口消息处理函数和特定消息中断。 Memory 由于指针指向的数组,Watch只能显示第一个元素的值。为了显示数组的后续内容,或者要显示一片内存的内容,可以使用memory功能。在 Debug工具条上点memory按钮,就弹出一个对话框,在其中输入地址,就可以显示该地址指向的内存的内容。 VariblesDebug工具条上的Varibles按钮弹出一个框,显示所有当前执行上下文中可见的变量的值。特别是当前指令涉及的变量,以红色显示。寄存器 Debug工具条上的Reigsters按钮弹出一个框,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论