- 8
- 0
- 约2.32千字
- 约 4页
- 2017-06-07 发布于重庆
- 举报
C程序调试方法和技巧
程序调试方法和技巧
改正程序的编译期错误
源程序编制完成后,首先由C++编译程序编译成.obj文件,再由连接程序连接成可执行文件。在编译时,如果源程序存在语法错误(errors),则系统不允许连接,直到改正了所有的语法错误后,才能进行连接。另外,编译时还可能存在另一类错误,即警告性错误(warnings),这类错误一般不影响程序的连接,在很多情况下也不影响程序的执行结果,但建议还是尽量把这类错误改正。
选择编译菜单(Compile)(或者直接单击快捷工具栏上的编译按钮)对编译好的源程序进行编译,在集成环境下方的OutPut窗口中将会显示相应的编译信息(若OutPut窗口没有出现,则可以在快捷工具栏上右键单击并在弹出的菜单中选择OutPut菜单项即可打开(或关闭)OutPut窗口)。若程序编译没有发现错误,则该窗口中显示“***.exe - 0 error s , 0 warning s ”,这时可以进行程序的连接;若编译后存在语法错误或警告错误,该窗口中则显示两类错误的个数,并列出相应的错误位置和原因。
改正编译期错误的方法和一般原则为:
改正错误时一般从第一个错误开始,然后依次改正后续的错误。因为前面错误的出现,往往会导致编译系统在编译时错位,把本来正确的语句认为是错的,也可能把某些语句的错误掩盖掉。所以当改正了前面的错误后,可能会使错误量减少很多,也可能增加很多;
在OutPut窗口中双击指定错误,则系统会自动定位到该错误出现的位置,并在错误语句前面用一个蓝色子弹头标识。注意,该标识只是告诉程序员编译时在此位置出错了,真正的错误可能出现在该标识语句的前一语句或后一语句,如函数定义时,在小括号后加了分号,错误标识将出现在左大括号处;
根据情况,每改正一个或几个错误后,应重新编译一下,然后再从第一个错误进行改错,直到所有错误都被改正过来。
程序执行时的调试
实践中发现,往往很小的程序在执行时也会出现错误。当一个程序可以被连接成功,但执行时却存在不正常现象,如不能得到预期的运行结果或出现死机等,而一下子又很难找出出错原因时,可以采取以下方法查错、改错。
单步跟踪执行命令
单步跟踪执行程序,能够清楚地看到程序的一步步执行过程,从而判断出源程序的执行流程是否与事先设计的流程一致,从中发现造成死循环或死机的原因所在。C++集成环境提供的单步跟踪命令有“Step Into”和“Step Over”两种,当选择这两个命令时,程序进入DEBUG(调试)状态,并在main函数的左大括号处出现一个黄色的子弹头标识,意味着程序从此处开始执行,以后每执行一次这两个命令之一,则程序执行一行,若程序每一行只有一个语句,则相当于一次执行了一个语句。这两个命令的区别如下:
“Step Into”:对应的快捷键为F11,在单步执行过程中,若当前执行的语句是函数调用语句,则执行一次该命令将会跟踪至被调用函数内部继续单步跟踪执行。
“Step Over”:对应的快捷键为F10,在单步执行过程中,若当前执行的语句是函数调用语句,也不会跟踪到被调用函数内部执行,而是直接把该函数调用作为一个语句一次执行完成,到当前函数的下一语句继续跟踪执行。
在具体操作时,这两种单步跟踪命令往往配合使用:一般先使用“Step Over”命令单步跟踪执行,当执行到某函数调用处时,如果需要跟踪至被调用函数内部,则再使用一次“Step Into”,然后继续使用“Step Over”命令。
执行到光标所在行命令
该命令可以一次执行到鼠标光标所在的程序语句位置。
在进行程序的调试时,有时能够确认在某语句之前的所有语句都是正确的,如果对这些语句进行单步跟踪会增加不必要的调试时间,此时可以使用该命令,执行让程序执行到光标所在行,然后在配合单步跟踪,能够有效地提高调试的效率。
该命令对应的快捷键为:Ctrl+F10。
设置断点命令
设置断点是另一种能够快速执行到程序指定行的方法:首先把光标停在需设置断点的位置,然后按F9(或工具栏上的“手形”按钮),则在指定行出现一个红色的实心圆,表示一个断点设置完毕。如果需要设置其它的断点,则重复以上步骤即可。断点设置完毕,按F5,则程序一次性执行到第一个断点所在位置,以后每按一次F5,程序将执行到下一断点,执行程序执行完毕。在执行过程中,也可以增加其它的断点。
在有断点的位置,再按一次F9(或工具栏上的“手形”按钮),则可以取消该断点的设置。
在编制的程序比较短,特别是只有一个源程序文件的情况下,单步跟踪和执行到光标所在行命令已经能够很好地完成调试任务。该命令在多文件组织的程序中能够有效地发挥其调试功能。
观察程序执行过程中变量和表达式值的变化
在使用以上命令进行调试过程中,通过观察当前执行点相关变量或表达式的值,能够有效地发现错误出现的原因和位置。
在调试状态
您可能关注的文档
- 5.水在加热和冷却后.doc
- BT04-BMP009-12合成机油推广.doc
- 50-1000地质钻杆.doc
- BT100-2J型蠕动泵标定数据(EG).doc
- 50-1m地质螺旋钻杆.doc
- 50-15定积分.doc
- 50-3镀银转接线.doc
- BT137-600E可控硅.docx
- BT301S调速型蠕动泵.doc
- BT300S调速型蠕动泵.doc
- 2025年交通运输绿色低碳五年行动计划报告.docx
- 2026年粮食安全保障与生物育种技术创新路径报告.docx
- 2026年钼管项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年丙二醇单甲醚项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年管状输送带项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年家纺材料五年研发报告.docx
- 绿色金融十年发展:2025年绿色生态保护融资行业报告.docx
- 2026年冶金行业不锈钢市场十年展望报告.docx
- 2026年交流低压抽出式开关柜柜体项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年仿水晶螺纹管项目可行性研究报告(市场数据调查、监测研究).docx
最近下载
- 2026年牛津译林版中考英语新课标1500个单词背诵清单.pdf
- 疥疮诊疗中国专家共识(2026版)解读PPT课件.pptx VIP
- 《烟雾病和烟雾综合征诊断与治疗中国专家共识(2024)》解读PPT课件.pptx VIP
- 2024年改良型新药行业研究报告及未来五至十年预测分析报告.docx
- 乡镇民主生活会批评与自我批评.docx VIP
- 陕西凤翔县马家庄秦墓出土的出土陶罐.docx VIP
- 采血后预防淤青的按压方式.pptx VIP
- 纺织厂供配电系统设计.doc VIP
- 乡镇领导班子成员相互批评意见.docx VIP
- 30.XX中专职业学校“十五五”五年中长期发展规划(2026-2030年).pdf
原创力文档

文档评论(0)