- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8部分-2 程序调试 1. 概述 什么叫调试? 程序没有语法错误,但运行结果不符合期望时,采用适当的工具或方法,反复找出程序中存在的问题,进行修改,最终使程序符合要求的过程。 调试是一个程序员必须要掌握的基本技巧,对于编写高质量程序非常重要。 掌握基本的调试技巧对今后的学习、工作是非常必要的! 为什么要调试? 问题 我的程序跟书上一样,怎么就不出结果呢? 我的程序没错啊,怎么不出结果啊? 我的程序运行结果不正确,如何找到错误? 原因 程序没有语法错误,不等于就没有语义错误。 要确保程序没错,必须对程序进行各种测试 2. 解决程序中的错误的方法 基本方法—人工阅读走查,修改 程序员一行一行的看程序 根据实验数据,在脑子里或在纸上模拟程序运行过程,在脑子里或纸上记录程序中间运行结果。 在这过程中发现程序的错误。 修改发现错误,重新运行测试,如果还有错,继续查看,修改。 基本方法存在的问题 这种方法效率不高,属于原始的方法。 要求程序员具有很强的源程序理解、运行过程记忆、预测、纠错能力和经验。 程序员必须用脑子、纸、笔来模拟程序的运行状态 记录程序的执行进度 记录所有变量或数据变化过程 观察和记住执行过程中环境的变化 程序和模块达到一定规模以后,就很难这样方法调试,效率太低,难度太大,很难发现问题,很难记录状态变化过程。 程序员脑子中的计算与程序实际完成的计算往往有差异,这样的差异是很难发现的,是很难在纸上体现出来的。 采用辅助工具来协助调试 随着技术的进步,各种IDE的功能越来越强大,人们在IDE中实现并提供许多功能用来辅助程序员对程序进行调试。 IDE的辅助功能 提供工具让程序员能控制并看到程序的执行进程,如单步执行,执行到某个位置,进入到某个函数内部执行,… 在执行过程中,提供工具记录、展示甚至修改环境的状态:变量值,内存数据,函数返回值,程序界面输出结果,… 一些值得思考的问题 为什么集成开发环境能够让程序员调试程序?是如何做到的? IDE要能使程序员调试一个程序,需要保存关于程序的哪些信息? 调试信息 3. 项目配置与调试Project Configuration and debugging 你是否注意到每个项目中的debug文件夹? 注意,本节有许多很理解的概念,如果暂时看不懂,可以先跳过去。 什么叫项目? 项目即project,指通过设计实现一组程序完成用户所需功能的工程及过程。 请查看《上机写程序》那个课件关于项目的解释。 两个概念 Project settings—项目设置 Project configuration—项目配置 Project settings 项目具有许多属性,如: 编译结果输出目录 工作目录 编译参数 需要链接的函数库 编译完以后做什么操作 编译前要做的操作 … 了解这些属性的意义以后,我们可以对这些属性值进行设置,以影响编译器的编译行为。 Project Configuration 对项目的所有属性的一组设置值统称为一个Project Configuration,即一组Project Settings统称为一个Project Configuration. VC提供两组标准项目设置信息的Configuration模板 Debug?默认的活跃的项目配置模板 Release 很有经验的程序员也可新建不同于这两组标准模板的项目配置。 Set active project configuration 在同一时刻,只能有一个configuration是有效的或活跃的。 在Build菜单下选择Set active project configuration. 对项目配置的理解 可以从这个角度来简化理解(不够准确) 每一个project都有一个开发状态,称为debug与release,得到的编译结果分别称为 Debug版程序?还处于调试状态的程序 Release版程序?最终提交给用户的可以执行的程序 问题 Debug版与Release版有什么区别? 区别 标准的Debug版的项目配置指示编译器在编译时,使项目或程序中包含有调试信息,对程序不做任何的优化,便于程序员调试程序。 标准的Release版的配置指示编译器在编译时对程序进行优化。得到的结果在代码大小和运行速度上都是较优的,程序中也不包含调试信息。 Project Settings 一些编译选项及解释 4. 怎么调程序? 辅助我们调试程序的工具称为IDE的调试器debugger 如何进行入调试? 方法1. 菜单:Build?Start Debug?Go 方法2. 直接点击工具条上的Go按钮 方法3. 按热键F5 设置断点 断点是 最常用的技巧。 断点是调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。 调试时,只有设置了断点并使
您可能关注的文档
- 听歌猜歌名策划书.doc
- 听证会参加人确定方案.doc
- 听课的基本方法可以概括成四个字.doc
- 听障儿童机构康复训练操作规范.doc
- 启源体会议室会议系统系统方案.doc
- AdobeAudition3.0短训教程.ppt
- A115k与i518对比.ppt
- 启程online评估报告.doc
- 启航队美团外卖南工运作方案综合.doc
- 启闭设备控制室施工方案.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)