- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中级教程 排错-19ppt课件
沈阳东软软件股份有限公司 NEU-APN IA事业部 (机密) 程序调试与程序排错 课程主要内容 程序调试方法 程序排错方法 程序排错举例 问题与习题 主要内容 1.1 程序调试技巧_VC 1.2 排错准备 1.3 排查过程实例 1.1 程序调试技巧_VC(1) 设置断点(F9) 在当前光标所在行下断点,如果当前行已经有断点,则取消断点; F5调试状态运行,程序执行到有断点的地方会停下来; 通过ALT+F9还可以设置条件断点; 注意,并不是所有断点都会停;如被设置断点的语句在程序里面没有被执行; 单步执行(F10) 单步执行程序; CTRL+F10运行到光标所在行; ? 1.1 程序调试技巧_VC(2) 单步执行深入函数内部(F11) 如果当前执行语句是函数调用,则会进入函数里面; SHIFT+F11跳出当前所在函数; 通过Memory了解指定内存地址内存储的内容 通过CallStack了解上级(父)函数内部信息,包括变量数值…… 1.1 程序调试技巧_VC(3) 通过打印信息排错 如果VC提供的调试手段还不能符合需要,可以尝试打印信息的方式;在需要输出信息的地方写上printf(“??????”); 打印可以根据需要输出信息; 打印信息可以长期保存,便于他人参与分析和讨论; 1.2 排查准备(1) 排查的立足点 排错要找病根,因为症状可能远离病根。一个人肚子痛,问阿凡提怎么治,阿凡提说,你该上眼药水,因为你的眼睛不好,吃了脏东西,先治眼。 发现了问题,首先要怀疑是自己的原因,不要抱怨编译系统、或程序库、或除了自己的代码之外的其他任何东西; 排错必须从结果出发,逆向思考,去发现原因。一旦有了一个完全的解释,我们就知道如何去更正了; 看看程序瘫痪前已经有了什么样的输出 如果可能的话,看看堆栈轨迹(callstack) 1.2 排查准备(2) 排查思路 寻找熟悉的模式 检查最近的改动。错误很可能就在新的代码里,或者是由于这些改动而暴露出来 不要两次犯同样的错误。当你改正了一个错误后,应该问问自己是否在程序里其他地方也犯过同样错误 现在立刻排除,而不是以后。在急忙中需要处理的事情太多,也可能造成其他损害。在任何一次程序垮台时都不要忽视它,应该立即对它进行跟踪,因为它可能不会再现 1.2 排查准备(3) 取得堆栈轨迹(callstack) 非常仔细地阅读代码,仔细想一段时间,不要急于去做修改 把你的代码解释给别人,让有经验的人分析 分而治之 设法构造出最小的又能保证错误现身的输入,这样可以减少可能性 采用二分检索的方式 研究错误的计数特性 显示输出,使有哪些信誉好的足球投注网站局部化 1.2 排查准备(4) 把错误弄成可以重现的 第一步应该是设法保证你能够使错误按自己的要求重现 如果无法把错误弄成每次都出现的,那么就应该设法弄清为什么做不到。即使你无法保证错误每次都出现,如果你能减少等待它出现的时间,也就能够更快地找到它。 如果一个程序提供了排错输出,那么就应该打开它 保留记录。如果查找某个错误的过程花了一定时间,你可能就要开始忘记试验过的情况和已经学到的东西了。 1.2 排查准备(5) 写自检测代码 如果需要更多的信息,你可以写自己的检查函数去测试某些条件、打印出相关变量的值或者终止程序 写出一些例行程序,让它们对数据结构或其他信息做在线的一致性检查 写记录文件。以某种固定格式写出一系列的排错输出(执行表) 画一个图。在测试和排错中,有时图形比文字更加有效 1.3 排查过程实例(1) 利用VC的Debug工具进行调试 关于A程序的功能详细说明见word文档。 关于A程序代码请参见a.c文件。 阅读运行方法:选中文件“a.c”图标,,右键?Copy?粘贴到指定的文件夹?打开。 需要排查的问题 问题1:程序里面存在一个错误,导致程序运行不能结束,请排除; 问题2:排除问题1后,程序输出结果如下: 11 34 33 32 12 30 29 28 27 26 25 24 35 22 21 20 19 18 17 16 13 14 23 31 13 结果仍不正确,请继续排查; 1.3 排查过程实例(2) 分析步骤 如下图,程序陷于死循环状态。 1.3 排查过程实例(3) 出发点 看代码 可能会找到原因,但是非常耗时;对于这个问题,不是很适用。 利用VC的Debug工具 VC提供了很多Debug的工具,如设置断点(F9)、单步执行(F10)…详细参见《IA_VC++MSDN的使用》 对于死循环的程序,可以通过菜单中Debug?Break(方式如图),来暂停程序。 1.3 排查过程实例(3) 1.3 排查过程实例(4) 1.3 排查过程实例(5) 问题的原因 通过F10单步执行,你会发现在循环(上图)中
您可能关注的文档
- 2011红鹤沟通青岛高端项目推广策略ppt课件.ppt
- 2011高考现代文阅读___如何分析文章标题ppt课件.ppt
- 2011首次期货投资分析真题讲解ppt课件.ppt
- 2011年神经本科(5年制).ppt
- 2012届浙江湘教版学海导航新课标高中总复习(第1轮)地理:模块1必修1第3章第4课常见的热力环流及其成因2.ppt
- 2012大学英语四级考试做题技巧.ppt
- 2011王立福的软件工程课件(自学考试)ppt课件.ppt
- 2012届浙江湘教版学海导航新课标高中总复习(第1轮)地理:模块2必修2第4章第1课_人类面临的主要环境问题ppt课件.ppt
- 2011珠江珠纺城推广方案ppt课件.ppt
- 2012年中考复习建议.ppt
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)