网站大量收购闲置独家精品文档,联系QQ:2885784924

程序调试.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序调试ppt课件

程序调试 ——基础与技巧 西安交通大学 王树升 概述 任何一个天才都不敢说,他编的程序是完全正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。 在应用程序中发现并排除错误的过程叫做调试。 选用VS2005作为开发平台,语系为C系列(C,C++,C#)。 1. 错误 程序设计中常见的错误可以分为三种: 编译错误 运行时错误 逻辑错误 1.1 编译错误 编译错误是指程序在编译过程中出现的错误。它是由于不正确的编写代码而产生的如非法使用或丢失关键字、遗漏了某些必需的标点符号、函数调用缺少参数或传递了不匹配的参数等等。 例: fore(int i = 0; i 100; i++)//关键字书写错误 {} 1.1编译错误 1.2 运行时错误 运行时错误是指应用程序在运行期间执行了非法操作或某些操作失败,如打开的文件未找到、磁盘空间不足、网络连接断开、除法中除数为零等等; 例:数组下标越界是一种典型的运行时错误。 int [] arrayX = new int [4]; for(int i = 0; i5;i++){ arrayX[i] = i; } 1.2 运行时错误 1.2运行时错误 1.3逻辑错误 逻辑错误是指应用程序未按照预期的方式运行时所产生的错误。一般来讲,这不是属于语法层次的错误,应用程序可以执行,但是得不到正确的预期结果。 例: 对于一个数组的初始化,预期对其某个特定位置赋初始值,其余置零: int [] array = new int [100]; array[55] = 55; for(int i = 0;i100;i++) array[i] = 0; 那么在这段代码完成后就没有得到我们预期的结果(代码执行顺序的逻辑错误)。 2.调试的类别 调试方法分为两种:动态调试和静态调试。 程序的静态调试就是在程序编写完以后,由人工“代替”“模拟”计算机,对程序进行仔细检查,主要检查程序中的语法规则和逻辑结构的正确性。实践表明,有很大一部分 错误可以通过静态检查来发现。通过静态调试,可以大大缩短上机调试的时间,提高上机的效率。 2.调试的分类 程序的动态调试就是实际上机调试,它贯穿在编译、连接和运行的整个过程中。根据程序编译、连接和运行时计算机给出的错误信息进行程序调试,这是程序调试中最 常用的方法,也是最初步的动态调试。在此基础上,通过“分段隔离”、“设置断点”、 “跟踪打印”进行程序的调试。 这里主要讲解动态调试。 2.1动态调试 调试应用程序的过程中,可以充分控制应用程序的执行过程,包括以不同的方式启动调试过程、中断应用程序的执行等等。 主要有: 开始执行F5(Go):应用程序开始执行并一直执行下去直到遇到断点或者程序结束。 逐语句Step Into(F11):应用程序开始执行第一条语句然后中断,当遇到有函数调用时,执行过程会进入到被调用函数的内部。 2.1动态调试 逐过程Step Over(F10):与逐语句相似,但是它不进入到被调用函数的内部,而是把函数调用当作是一条语句来执行。 Step Out(Shift+F11):与之相反,step out是跳出当前进程,返回到调用它的外层代码,该过程执行完毕。 Toggle Breakpoint(F9):在当前光标所在行添加断点。 2.1动态调试 VS05为用户提供了3种步进单位。 行:步进一次执行一行源代码。(有可能一行代码中有多条语句) 语句:步进一次执行一条语句。 指令:步进一次执行一条机器指令。 可以通过【调试】菜单中的【窗口】中修改调试方式来进行选择。 3.断点 断点是调试应用程序时经常使用的一种工具。 使用断点前必须要在代码中插入断点。(F9) VS中使用【新建断点】命令来选择断点类型以及设置“高级”断点。例如:点击次数是指断点所在位置运行的次数,到达条件时才中断程序。 各IDE请参照其技术手册。 3.一些较好的技巧 使用预定义(调试标记) 在编写程序的时候,往往需要获得一些中间信息例如制作日志文件来观察应用程序是否是按照我们预期来运行的。那么这个情况下就可以使用预处理#define定义调试标记。 3.一些较好的技巧 运行期间的调试标记 可以使用定义bool变量来决定是否执行调试语句。 3.一些较好的技巧 使用断言 c系列中的assert()断言的使用。 当使用assert时候,给他一个判读为真的表达式。预处理器产生测试该断言的代码,如果断言不为真,则发出一个错误信息告诉断言是什么以及它失败,程序会终止。 3.一些较好的技巧 最好写出备注 这是个良好的习惯,方便自己也方便后人。为关键变量以及各个函数功能写出言简意赅的注释。

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档