- 4
- 0
- 约1.75万字
- 约 65页
- 2017-05-06 发布于河南
- 举报
C++编程的调试技巧 主要内容 VC++集成开发环境 调试方法 如何独立解决问题 编程规范 一、集成开发环境的熟悉 二、调试方法 树立正确的编程方法论 没有解决不了的问题,树立编程信心 按照正确的方法来编程 从实践中体会解决问题的思路、编程的思想 熟练掌握语法,数据结构,算法、模式,底层环境 按照编程规范来编写代码 充分利用各种资源: 调试器 msdn 网络搜索引擎 常用调试手段 利用编译器的输出信息排除错误 利用调试器的调试功能 单步、run to cursor、断点、条件断点、查看堆栈、 利用watch窗口查看变量、表达式的值 分段调试法、增量调试法 利用flush人为刷新缓冲区 修改输出信息,增加标志位 利用输出语句打印调试信息 通过堆栈观察函数调用情况 综合程序调试方法 注释的技巧、条件编译 几个简单例子 结 论 1 永远不要写过长的语句,应该让代码尽可能简单;永远不要把两条语句写在一行中,以便于调试。 结 论 2 要尽可能的熟悉语法知识 充分利用编译器提供的信息 编程过程中要细心 思路要清晰,没把握时,要先画流程图,然后再编码 结 论 3 要掌握编程的本质: 是由程序员控制机器,使其按照我们的思路运转,机器本身没有智能。 结 论 4 编译器不一定能给出确切的错误信息,要合理的“猜测” 出错信息 通过单步运行的方式加深我们对程序执行流程的理解。 单步执行是最重要的调试手段! 结 论 5 通过单步执行可以发现程序运行的轨迹 通过单步执行可以随时监视变量的值,无论何时发现变量值与我们的预期不一致时,即找到了错误点 单步调试方法 前提:debug版本可执行程序,build正确 进入调试状态 F10为单步调试,要深入到子函数中单步调试,应在函数调用语句处按F11 单步调试应该结合watch窗口监视变量值的变化 稍复杂的例子 结 论 6 分段调试:可以有效降低调试难度,快速定位错误的大致范围,“粗调” 单步F10调试:找到可疑点后,逐行执行可疑点附近的代码,对错误“精调” run to cursor:使程序快速运行到可疑点后暂停,克服F10运行速度慢的缺点 强制输出(flush):增加有参考价值的信息 watch窗口:可观察变量或表达式的值,配合F10进行单步“精调” 小技巧 在循环体内,每执行一次run to cursor,就相当于完整的执行了一遍循环体,经常用来替代多次执行F10。 结 论 7 F11可以深入到函数内部单步执行,F11和F10结合起来使用可以调试多函数的程序。 step over可以从当前函数中跳出到调用点 观察堆栈能看到函数之间的调用关系 在适当的位置插入输出语句,有助于了解程序的执行流程,是一种十分重要的调试手段 小技巧 单步调试时,如果某条语句不是调用自定义的函数,那么不要按F11,尤其是本行包含了cout 综合实例 小技巧 在VC++集成开发环境中执行控制台程序,执行完毕后VC++会自动加暂停,但是直接在文件系统中执行时没有这个暂停功能。 解决办法:在命令提示符下执行程序,使用输出重定向功能,然后去相关目录下查看输出文件。 小技巧 利用 // 和 /* */ 注释掉代码段的简便方法 养成良好的变成习惯与风格,可参考教材算法的代码格式或者一些公司的代码规范要求。 #include iostream.h void main() { ///* for(int i=1;i=10;i++) { for(int j=1;j=i;j++) cout*flush; coutendl; } coutendl; //*/ ///* for(int t=1;t=10;t++) { for(int k=1;k=11-t;k++) cout*; coutendl; } coutendl; //*/ } 编程规范: #includeiostream.h int main() { int m; cout请输入一个正整数:endl; cinm; for(int i=1;i=m-1;i++) { m=m*i; } cout阶乘为:mendl; return 0; } 求阶乘 #includeiostream.h int main() { int m; cout请输入一个正整数:endl; cinm; for(int i=1;i=m-1;i++) { m=m*i; //循环体内修改了循环条件 } cout阶乘为:mendl; return 0; } 求阶乘 通过单步执行可以监视变量的变化,当变量与预期不一致是,即找到了错误点 #includeiostream.h int main()
您可能关注的文档
最近下载
- 机动车驾驶员培训结业证书(正面)(可编辑).docx VIP
- 副机长机组资源管理考试题库.docx VIP
- 茶叶发酵微生物功能探究-洞察与解读.docx VIP
- 遮阳帘 企业标准.pdf VIP
- 三一汽车起重机STC1000C7-1_产品手册用户使用说明书技术参数图解图示电子版.pdf VIP
- 浙江省杭州市西湖区学军统考2024-2025学年高二上学期期末考语文试卷(原卷版+解析版).docx VIP
- 西威变频器快速调试手册(电梯维修资料).pdf VIP
- 反渗透专用碱性清洗剂.doc VIP
- 2025年无人机驾驶员执照机组资源管理(单人_多人)专题试卷及解析.pdf VIP
- 2026年民主生活会在带头干事创业、担当作为等“五个带头”方面个人对照检查材料.docx VIP
原创力文档

文档评论(0)