欢迎来到天天文库
浏览记录
ID:42943320
大小:48.00 KB
页数:10页
时间:2019-09-26
《补充知识(调试)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、补充知识程序调试基本知识程序调试是指查找和排除程序中的错误。程序中的错误有两类:语法错误和逻辑错误。1.语法错误指违背语法规则的错误。对于语法错误,编译时系统会给出错误信息,因而容易排除。要注意的是:有时提示的出错行号不准确。当在提示的行中找不到错误时,应到前面去查找错误。例如,第4行末的分号遗漏,编译时提示第5行出现语法错误,实际上错误在第4行。有时提示多条错误信息,实际上可能只有一、两处错误,纠正了前面的错误,后面的错误便自然消失。2.逻辑错误是指程序中没有语法错误,但运行结果不正确。这种错误较难查出,需要仔细查找。例如,计算s=1+2+3+4+…+1
2、00,程序如下:while(i<=100)s=s+i;i++;这里并没有语法错误,运行时却出现死循环。原因在于循环体应该只有1条语句,这里有2条语句,实际上语句“i++;”不能被执行,所以i的值不变,总是满足条件。循环体应该使用花括号构成复合语句。程序调试步骤①静态检查即对写在纸面上的程序进行人工检查,发现和纠正一些由于疏忽大意造成的错误。②动态调试即上机调试。调试方法有多种,例如:设置断点,分段调试;利用“实验数据”对运行结果进行验证;利用DEBUG跟踪程序流程;当找不到错误时,应考虑算法本身是否存在问题。动态调试若编译和链接都正确,而执行结果又总是不
3、正确,用调试工具来侦测出程序中隐藏的出错位置(某种逻辑错误)Debug菜单:启动调试器后出现Debug菜单(代替Build菜单)Go:从当前语句启动继续运行程序,直到遇到断点或遇到程序结束而停止。Restart:重新从头对程序进行调试执行(修改过程序后往往需要这样做)StopDebugging:中断当前的调试过程并返回正常的编辑状态(系统将自动关闭调试器)StepInto:单步执行程序,但当执行到函数调用语句时,进入函数内部,并从头单步执行。StepOver:单步执行程序,但当执行到函数调用语句时,不进入函数内部,而是一步直接执行完该函数后,接着执行函数调用语
4、句后面的语句。StepOut:与StepInto配合使用,当执行进入到函数内部,单步执行若干步之后,发现不再需要进行单步调试,则通过此选项从函数内部返回。RuntoCursor:使程序运行到当前鼠标光标所在行暂停其执行,相当于设置了一个临时断点。设置临时断点的调试手段使用方便。先通过RuntoCursor执行到某一个临时断点行处,再通过StepInto或StepOver进行单步执行,每执行一步,观察并分析系统自动给出的各变量取值的动态变化情况,以便及时发现异常而找出出错位置。两个数的和s、差d、商q、模r,然后计算res=s+2*d+3*q+4*r#inclu
5、deusingnamespacestd;intmain(){intx=3,y=5;ints,d,q,r,res;s=x+y;d=s-y;q=x/y;r=x%y;res=s+2*d+3*q+4*r;cout<<"res="<6、选择:“RemoveBreakpoint”。断点:告诉调试器在何时何地中断程序的执行过程,以便查看当时的变量取值等现场情况。注意:需要反复的实践才能真正理解调试的作用,并掌握调试的方法!充分利用今天胜过两个明天惜时如金返回目录
6、选择:“RemoveBreakpoint”。断点:告诉调试器在何时何地中断程序的执行过程,以便查看当时的变量取值等现场情况。注意:需要反复的实践才能真正理解调试的作用,并掌握调试的方法!充分利用今天胜过两个明天惜时如金返回目录
此文档下载收益归作者所有