欢迎来到天天文库
浏览记录
ID:62496139
大小:389.51 KB
页数:18页
时间:2021-05-10
《CFree5程序调试方法.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、CFree5.0程序的单步调试创建一份新的代码文件可直接点击“文件”下的白色图标,或点击“文件”选择“新建”,或按快捷键“Ctrl+N(CFree5.0默认情况下新建的代码文件为.cpp格式,可在“工具”、“环境选项”、“新建文件类型”中更改,C语言标准格式为.c格式)基于实例的C程序调试介绍一、查看变量的内容#ineludeintmain(intargc,char*argv[]){inti;intsum;sum=0;for(i=1;i<=10;i++)sum=sum+i;printf("s
2、um=%d",sum);return0;}第一步,打开CFree5.0,输入上面的代码。第二步,把光标移到“sum=0”这一行,按F10Ifntin■Viat旨s;1#include3、这里时,会停下来。也就是说,接下来,程序必须通过按F7键单步运行了。第三步:按F9(开始调试)精品■4、£mtchiinclude;11return0;12}13我们发现有一箭头停留在这句语句上,它指示程序停留的位置,而箭头所在的语句(“sum=0”)还没有执行。事实上,我们可以通过看一下内存变量sum的内容5、来验证。方法是这样的:精品打开“调试”下的“监视”,或者按快捷键“Alt+3”。调就CPP]1裘达式值精品在“监视”的空白处点击鼠标右键,选择“添加监视”&达式值Ifr:ftiinclud*-IlXDel"x河轩苒监衽I(V)显云惰式(Z〕1精品精品输入需要监视的变量名,这里输入为sum張这式J裏达式@:精品精品这时我们可以在监视窗口中看到sum的内容不为0,而是一个随机的值。秦达式值swn4199256精品第四步,我们按一下F7(进入),我们发现sum的内容变为0了。这说明“sum=0”这6、句语句被执行了。swX■■lb##lTLclu(it^3tJlOhXt£3iirtmain(intargc,char*^rgv[])4(5inti;6intsuju;7£LLm=0;SR2"-I;<-10;;++)3SLLt:L=SUJIl+l;10printf("sun^td11,sum)11return0;12}我们还可以用同样的方法看一下i的内容。精品只需要鼠标点第六步,一步一步地按F7,我们可以发现在单步执行for循环语句的时候i和sum的内容在不断变化。当退出循环时,我们发现i的内容为11(因为变量7、i的内容为11,i<=10这个条件不满足,所以程序退出循环)。附带提一下,当程序已经执行了"sum=0”这一句语句后,如果我们直接把光标移到“printf("sum=%d",sum);”,然后按Ctrl+F8,我们可以直接把上面的for循环都执行了,而不必一步一步地按F7。在实践中,为了查找程序的逻辑错误,我们往往要单步运行该程序好几遍。如果已经通过单步调试验证某一段语句(如一个for循环语句或者几个用户定义的函数)正确了,我们就可以用Ctrl+F8跳过这段语句,直接运行到还未测试的语句。*达式值5511W々8、團¥XIfaaifl▼ttlincludth>4t精品:JJ»■1liOflOKsMi£inti;int旦s;□E•7■in-=3;ufor(i=l;,<=10;i++}g3.工=;r.m+i;申w9、printf1112Jreturn0;、F7(进入)和F8(跳过)的区别#ineludeintadd(intm,intn){ints;s=m+n;returns;}intmain(intargc,char*argv[]){inti=1;intj=2;intsum;sum=add(i,j);pri10、ntf("sum=%d",sum);return0;}第一步,把光标移到"sum=add(i,j);",按F10设置断点后按F9开始调试,此时“sum=add(i,j);”这句语句还没有执行。精品接下来,如果按F7,则程序单步执行到intadd(intm,intn)的函数体,此时箭头停留的如下图所示。精品"鼻WWTTT精品1#includeintadd(int:,intn)4{精品精品3}910in
3、这里时,会停下来。也就是说,接下来,程序必须通过按F7键单步运行了。第三步:按F9(开始调试)精品■
4、£mtchiinclude;11return0;12}13我们发现有一箭头停留在这句语句上,它指示程序停留的位置,而箭头所在的语句(“sum=0”)还没有执行。事实上,我们可以通过看一下内存变量sum的内容
5、来验证。方法是这样的:精品打开“调试”下的“监视”,或者按快捷键“Alt+3”。调就CPP]1裘达式值精品在“监视”的空白处点击鼠标右键,选择“添加监视”&达式值Ifr:ftiinclud*-IlXDel"x河轩苒监衽I(V)显云惰式(Z〕1精品精品输入需要监视的变量名,这里输入为sum張这式J裏达式@:精品精品这时我们可以在监视窗口中看到sum的内容不为0,而是一个随机的值。秦达式值swn4199256精品第四步,我们按一下F7(进入),我们发现sum的内容变为0了。这说明“sum=0”这
6、句语句被执行了。swX■■lb##lTLclu(it^3tJlOhXt£3iirtmain(intargc,char*^rgv[])4(5inti;6intsuju;7£LLm=0;SR2"-I;<-10;;++)3SLLt:L=SUJIl+l;10printf("sun^td11,sum)11return0;12}我们还可以用同样的方法看一下i的内容。精品只需要鼠标点第六步,一步一步地按F7,我们可以发现在单步执行for循环语句的时候i和sum的内容在不断变化。当退出循环时,我们发现i的内容为11(因为变量
7、i的内容为11,i<=10这个条件不满足,所以程序退出循环)。附带提一下,当程序已经执行了"sum=0”这一句语句后,如果我们直接把光标移到“printf("sum=%d",sum);”,然后按Ctrl+F8,我们可以直接把上面的for循环都执行了,而不必一步一步地按F7。在实践中,为了查找程序的逻辑错误,我们往往要单步运行该程序好几遍。如果已经通过单步调试验证某一段语句(如一个for循环语句或者几个用户定义的函数)正确了,我们就可以用Ctrl+F8跳过这段语句,直接运行到还未测试的语句。*达式值5511W々
8、團¥XIfaaifl▼ttlincludth>4t精品:JJ»■1liOflOKsMi£inti;int旦s;□E•7■in-=3;ufor(i=l;,<=10;i++}g3.工=;r.m+i;申w
9、printf1112Jreturn0;、F7(进入)和F8(跳过)的区别#ineludeintadd(intm,intn){ints;s=m+n;returns;}intmain(intargc,char*argv[]){inti=1;intj=2;intsum;sum=add(i,j);pri
10、ntf("sum=%d",sum);return0;}第一步,把光标移到"sum=add(i,j);",按F10设置断点后按F9开始调试,此时“sum=add(i,j);”这句语句还没有执行。精品接下来,如果按F7,则程序单步执行到intadd(intm,intn)的函数体,此时箭头停留的如下图所示。精品"鼻WWTTT精品1#includeintadd(int:,intn)4{精品精品3}910in
此文档下载收益归作者所有