跟踪与中间过程输出

2016-02-19 12:15 3 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享跟踪与中间过程输出教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 编程语言 】

 

也许一个开发人员一半以上的时间都是在面对错误,所以好的调试/查错方法(工具)会减轻我们工作的负担,也可以让枯燥的DEBUG过程得以缩短。

VC开发环境所提供的调试环境是很优秀的,我们可以运用单步运行,设置断点的方法来查找问题所在。但是这种跟踪是非常耗时的,所以我们需要采用一些策略来让我们更容易的发现错误并对错误进行定位,所幸的是VC在这方面提供了强大的支持。在本节中我们先看看如何利用设置断点和利用TRACE宏来输出运行情况。

在VC开发环境中按下F9就可以在光标所在行设置断点,再按一次就可以取消该处断点。设置断点的意义在于在调试过程当运行到该行时回产生一个中断并返回到VC开发环境中,在开发环境中你可以查看各个变量的值。下面是我们用于测试的代码,前面有红色圆形的行表示该行设置有断点:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

一般来讲设置断点有下面的技巧:

设置在进行判断的代码处,这样可以在运行时可以观察判断所依赖的条件是否正确。 设置函数开始处,观察该函数所依赖的变量是否都设置正确。 设置函数结束处,观察该函数对变量的改变是否正确。 设置进入其他函数前/后,通过黑盒法检查该函数功能是否正确。 对于循环体,应该先测试一个循环次数小的条件来检查循环逻辑是否正确,或者在循环的前几次设置断点,在运行几次后取消断点。

在调试过程中到达断点处你可以通过上下文变量窗口(Variables)观察该函数中的变量的值,如果需要观察未在该函数出现的全局变量或者类成员变量这需要将变量名添加到观察窗口(Watch)中输入变量名称。但程序编译完成后请按下F5键以调试的方式执行程序,当进入断点时VC开发环境会被自动激活,然后我们可以可以观察程序的运行情况。在调试过程中也可以添加和删除断点。如下图:

如果在运行过程中被观察的变量的值发生了变化则该变量在观察窗中会变为红色。

MFC中提供的TRACE宏可以帮助我们在程序调试运行过程中方便的输出调试信息。TRACE宏的定义为:TRACE(exp),其中的表达式使用与printf相同的表达方法。例如下面的代码:

void CSam_sp_31Dlg::OnTest2()
{
         static int i=5,j=50;
         char szDeb[]="debug string";
         TRACE("trace i=%d j=%dstring=%s",i,j,s
                        

来源:https://www.tulaoshi.com/n/20160219/1600316.html

延伸阅读
Photoshop制作糖水MM思路与过程 磨皮我在这里选择了NEAT,写教程不容易,用插件也要懂方法,教程里有用插件注意细节的方法,请大家认真看看, 比较细的地方可以选择图章进行修改,很多新手看到这样的原片应该很郁闷吧,这么暗..怎么弄啊. 当你把基本的工具运用到熟练的时候你就不会害怕了! 我在这选择了"高调",但...
摄影技术上的完美所涉及到的问题包括人们能接受的清晰度、能营造出的合适氛围或色彩逼真的准确曝光等。但是另一方面,仅仅在技术上达到完美是不够的,影像通常还必须透过某种形式的画面规划来传递所需要表达的特定信息,这就是构图的意义所在。 构图一词出自拉丁语,原意有组成、结构和联结等含义。借用到摄影艺术中来,广义而言是指从选材、...
视频: 从怀孕到分娩的过程(图老师整理) 从怀孕到分娩震撼映像 视频: 孕妇家中水中分娩 此视频来源于优酷网 视频: 孕妇摇滚中分娩 此视频来源于优酷网 视频: 孕妇分娩生产(图老师整理)过程 此...
标签: Web开发
1、MsgBox函数 信息框函数(MsgBox)是常用的输出信息的函数。它在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪一个按钮。其语法格式如下: 变量=MsgBox (信息内容) [,对话框类型 [,对话框标题 ]] ) 说明: 信息内容指定在对话框中出现的文本,在信息内容中使用硬回车符(CHR13)可以使文本换行...
标签: Android
如何关闭Android位置跟踪 Android手机也被发现有跟踪用户位置的情况,而Google表示用户拥有保护自己隐私权的选择,任何访问用户位置信息的应用都会发送一个请求,而用户需要点击同意才能给Google跟踪你的权力。 假如你信任Google并依赖他们基于位置的服务,比如Maps、导航、基于位置的搜索、纵横等等,这些都需要你的位置信息。如果...

经验教程

612

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部