欢迎来到天天文库
浏览记录
ID:36614862
大小:2.55 MB
页数:66页
时间:2019-05-09
《《C语言课程序调试》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8部分-2程序调试1.概述什么叫调试?程序没有语法错误,但运行结果不符合期望时,采用适当的工具或方法,反复找出程序中存在的问题,进行修改,最终使程序符合要求的过程。调试是一个程序员必须要掌握的基本技巧,对于编写高质量程序非常重要。掌握基本的调试技巧对今后的学习、工作是非常必要的!为什么要调试?问题我的程序跟书上一样,怎么就不出结果呢?我的程序没错啊,怎么不出结果啊?我的程序运行结果不正确,如何找到错误?原因程序没有语法错误,不等于就没有语义错误。要确保程序没错,必须对程序进行各种测试2.解决程序中的错误的方法基本方法—人工阅读走查,修改程序员一行一行的看程序根据实验数据,在脑子里或在
2、纸上模拟程序运行过程,在脑子里或纸上记录程序中间运行结果。在这过程中发现程序的错误。修改发现错误,重新运行测试,如果还有错,继续查看,修改。这种方法是最为基本、人人都必须掌握的方法。以前程序调试手段以少,人们经常只能用用纸、笔和脑来模拟和记录程序动态运行中的状态。基本方法存在的问题这种方法效率不高,属于原始的方法。要求程序员具有很强的源程序理解、运行过程记忆、预测、纠错能力和经验。程序员必须用脑子、纸、笔来模拟程序的运行状态记录程序的执行进度记录所有变量或数据变化过程观察和记住执行过程中环境的变化程序和模块达到一定规模以后,就很难这样方法调试,效率太低,难度太大,很难发现问题,很难记录
3、状态变化过程。程序员脑子中的计算与程序实际完成的计算往往有差异,这样的差异是很难发现的,是很难在纸上体现出来的。采用辅助工具来协助调试随着技术的进步,各种IDE的功能越来越强大,人们在IDE中实现并提供许多功能用来辅助程序员对程序进行调试。IDE的辅助功能提供工具让程序员能控制并看到程序的执行进程,如单步执行,执行到某个位置,进入到某个函数内部执行,…在执行过程中,提供工具记录、展示甚至修改环境的状态:变量值,内存数据,函数返回值,程序界面输出结果,…使程序员不需要再在脑子中执行程序使程序员不需要完全只用脑或纸和笔来记录程序的运行状态,并保证中间结果的正确性一些值得思考的问题为什么集成
4、开发环境能够让程序员调试程序?是如何做到的?IDE要能使程序员调试一个程序,需要保存关于程序的哪些信息?调试信息3.项目配置与调试ProjectConfigurationanddebugging你是否注意到每个项目中的debug文件夹?注意,本节有许多很理解的概念,如果暂时看不懂,可以先跳过去。什么叫项目?项目即project,指通过设计实现一组程序完成用户所需功能的工程及过程。请查看《上机写程序》那个课件关于项目的解释。两个概念Projectsettings—项目设置Projectconfiguration—项目配置Projectsettings项目具有许多属性,如:编译结果输出目录
5、工作目录编译参数需要链接的函数库编译完以后做什么操作编译前要做的操作…了解这些属性的意义以后,我们可以对这些属性值进行设置,以影响编译器的编译行为。ProjectConfiguration对项目的所有属性的一组设置值统称为一个ProjectConfiguration,即一组ProjectSettings统称为一个ProjectConfiguration.VC提供两组标准项目设置信息的Configuration模板Debug默认的活跃的项目配置模板Release很有经验的程序员也可新建不同于这两组标准模板的项目配置。Setactiveprojectconfiguration在同一时刻,
6、只能有一个configuration是有效的或活跃的。在Build菜单下选择Setactiveprojectconfiguration.对项目配置的理解可以从这个角度来简化理解(不够准确)每一个project都有一个开发状态,称为debug与release,得到的编译结果分别称为Debug版程序还处于调试状态的程序Release版程序最终提交给用户的可以执行的程序问题Debug版与Release版有什么区别?区别标准的Debug版的项目配置指示编译器在编译时,使项目或程序中包含有调试信息,对程序不做任何的优化,便于程序员调试程序。标准的Release版的配置指示编译器在编译时对程序
7、进行优化。得到的结果在代码大小和运行速度上都是较优的,程序中也不包含调试信息。问题:什么叫优化?为什么不能优化ProjectSettings选择C/C++页,Category中选择general,则出现一个DebugInfo(调试信息)下拉列表框,可供选择的调试信息方式包括:一些编译选项及解释命令行Projectsettings说明无None没有调试信息/ZdLineNumbersOnly目标文件或者可执行文件中只包含全局和导出符号以及代码行信
此文档下载收益归作者所有