




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、delphi程序设计基础教程 第九章 调试技术 7 november 2021delphi程序设计基础教程第九章 调试技术t本章学习导读t9.1 编译调试概述t9.2 程序错误分类t9.3 编译器的设置 t9.4 程序的调试 t本章小结7 november 2021delphi程序设计基础教程本章学习导读 本章首先介绍在程序编写过程中可能出现的错误,然后介绍如何使用delphi内嵌的调试工具来检查已编写完成的源程序。让读者掌握通过delphi对程序进行基本测试的方法。 7 november 2021delphi程序设计基础教程9.1 编译调试概述 程序中的错误基本可以分为三类:t编译错误:编译
2、错误:一般是语法错误。t运行错误:运行错误:程序能正常编译但在运行时出错。t逻辑错误:逻辑错误:逻辑错误是指程序设计和实现上的错误。程序语句是合法的,并顺利执行了,但执行的结果却不是所希望的。 程序调试的主要内容可以包括如下几个方面:t控制程序的执行控制程序的执行t断点的数用断点的数用t监视和检查数据的值监视和检查数据的值7 november 2021delphi程序设计基础教程9.2 程序错误分类 t9.2.1 编译错误t9.2.2 运行错误 t9.2.3 逻辑错误 7 november 2021delphi程序设计基础教程9.2.1 编译错误 编译错误的产生是delphi将源程序编译称单元
3、目标文件.dcu是所产生的错误。在编译错误中最常见的就是程序语法错误,如源程序中出现了未经定义的非法字符,语句结尾缺少“;”等。当语法出现错误时,delphi自动装入错误的文件,并将光标定位在代码编辑器中的错误处,同时在代码编辑器的状态栏显示出错信息,包括出错的语句行号以及错误类型等信息。 语法错误往往是由于程序编写不规范、疏忽所引起的,如中文输入与英文输入状态切换不及时等。良好的编程习惯能减少类似错误的发生。语法错误相对来说容易识别,根据出错信息逐条语句更正错误即可顺利通过编译。 7 november 2021delphi程序设计基础教程9.2.2 运行错误 运行错误是指在编译通过后,运行程
4、序时产生的错误。这类错误往往是由指令代码执行了一非法操作引起的。如:定义的数组在运行时越界、试图打开一个不存在的文件产生i/o错误等。运行错误一旦发生,delphi会终止程序运行。 7 november 2021delphi程序设计基础教程9.2.3 逻辑错误 逻辑错误是程序逻辑关系上存在的错误,也是经常出现的错误类型。这类错误不影响程序的正常编译和运行,更不会出现错误的提示或警告对话框,但程序运行的结果却没有实现设计的功能。 7 november 2021delphi程序设计基础教程9.3 编译器的设置 t包含调试信息 执行菜单“工程|选项”转换到“compiler”选项卡,如图9-4所示。
5、 图9-4 设置编译参数7 november 2021delphi程序设计基础教程9.3 编译器的设置 debugging选项组是编译过程控制调试信息的选项。要使得集成调试器调试应用程序,必须选中该组中的选项。启动“debug information”复选框,则在编译文件中包含调试信息;启用“local symbols”复选框,则在编译文件中包含有源文件符号表。 启用debugging选项组后,编译后生成的执行文件长度增大。如果应用程序交付给用户时,建议将该组下的选项除去,然后使用菜单“工程|编译”命令重新编译,以减小应用程序的长度,提高执行效率。7 november 2021delphi程序
6、设计基础教程9.3 编译器的设置t允许完整模式调试 执行菜单“工具|调试器选项”命令,在“general”选项卡上,勾选底部的“integrated debugging”复选框(默认状态下,该项是被选中的)。 7 november 2021delphi程序设计基础教程9.4 程序的调试 t9.4.1 断点的设置和使用 t9.4.2 单步执行 t9.4.3 查看变量t9.4.4 其他调试方法与技巧 7 november 2021delphi程序设计基础教程9.4.1 断点的设置和使用 断点指的是在程序代码的某一行上设一个标记,程序执行到标记处将暂停,由调试器控制程序的运行。通常把断点设置在怀疑会
7、产生错误的代码前,或直接设置在问题代码上。在遇到断点之前,程序正常运行,到断点后程序暂停,然后使用单步或跟踪等方式执行程序,以发现错误。 7 november 2021delphi程序设计基础教程9.4.1 断点的设置和使用t设置断点 断点的设施十分灵活,既可以在程序设计期设置断点,还可以在调试期添加和删除断点。设置断点有以下几种方法: (1)单击代码某一行最左端; (2)把光标定位在需设置断点的代码行上,按f5键; (3)执行菜单“运行|添加断点|源中断”命令,在对话框中设定添加断点的代码行号; (4)右击代码行,在弹出的快捷菜单中执行“debug|toggle breakpoint”命令。
8、t需要注意的是,断点必须设置在可执行的代码行上。如果将断点设置在空行、注释行或其他不能执行的代码行上,调试器将认为断点无效, 7 november 2021delphi程序设计基础教程9.4.1 断点的设置和使用t查找断点 如果在代码上设置了多个断点,而且断点不在当前编辑窗口,那么可以在断点列表中寻找断点,并在源代码中定位。执行菜单“查看|调试窗口|断点”命令或者直接使用快捷键ctrl+alt+b来打开断点列表, 7 november 2021delphi程序设计基础教程9.4.1 断点的设置和使用t删除断点 删除某个断点可直接单击断点所在的代码行的左端红点。如果要删除所有断点,可以在断点列表
9、窗口空白处右击,在弹出菜单中执行“delete all”命令即可。7 november 2021delphi程序设计基础教程9.4.1 断点的设置和使用t断点的屏蔽与激活 在有些情况下,在设置断点以后可以随时禁用某个断点,使断点暂时无效。程序运行到该断点不会暂停程序,但断点依旧存在,以后还可以使用它。 要屏蔽某个断点,可以在断点列表中选中断点,在快捷菜单中选择“enabled”命令,去除“enabled”前的勾选,断点被屏蔽。在激活断点时,只需将再次单击“enabled”即可。 7 november 2021delphi程序设计基础教程9.4.2 单步执行 对程序进行调试时,常常要监视程序运行
10、的进度、当前状况以及各种变量在不同运行阶段的值。通过单步或跟踪调试,能单函数(过程)或单条语句逐步运行程序,以发现程序中的错误。 单步调试能使程序每次执行一行代码,可以使用“运行”菜单下的“步越”命令,或直接使用f8快捷键。跟踪调试与单步调试有点类似,每次也是执行一行代码,不同的是跟踪调试能进入被调用的函数(过程)内部,在函数和过程中,每次也只执行一行代码。可以使用“运行”菜单下的“步入”命令或f7快捷键进行跟踪调试。 为加快程序调试速度,可以先在可疑代码行前设置断点,先将程序执行到断点,然后接着使用单步或跟踪调试。 7 november 2021delphi程序设计基础教程9.4.3 查看变
11、量 在单步或跟踪调试时,鼠标在变量上停顿,可以显示该变量的值,但仅能显示当前鼠标指向的变量值。有时为了直观的分析、比较变量或表达式在不同运行时期的值,需要同时查看多个变量。为实现这个目的,delphi提供了监视窗口(watch list)。程序调试时可以把需跟踪的变量或表达式加入到监视窗口。 7 november 2021delphi程序设计基础教程9.4.3 查看变量t添加监视变量或表达式使用如下方法: (1)在代码编辑器中,右击需监控的变量或表达式,在弹出菜单上执行“debug|add watch at cursor”命令; (2)在代码编辑器中,光标定位到监控变量上,按ctrl+f5键。 以上方法添加了跟踪变量后,会弹出如图9-7所示“watch list”(监控)窗口。变量前的复选框用来允许或暂停该变量的监视,value显示了变量当前的值,从中可以监视到变量值的变化。 图9-7 监视窗口7 november 2021delphi程序设计基础教程9.4.3 查看变量t删除监视变量 可以在监视窗口列表中右击鼠标,执行弹出菜单中的“delete watch”命令。“delete all watch”命令可以删除所有监视变量或表达式。 7 november 2021delphi程序设计基础教程9.4.4 其他调试方法与技巧 在程序调试过程中,往往会因为程序的错误导致程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度企业形象宣传册设计与制作合同范本
- 二级Web考试的最佳策略试题及答案
- 近现代汉语对文学的重要性试题及答案
- 计算机二级公共基础知识题库试题及答案
- SQL调试中的常见思路与策略试题及答案
- 高级逻辑推理能力提升试题及答案
- 财务成本管理实践中的风险识别试题及答案
- 2025出国留学中介服务合同范本
- 计算机一级Photoshop考试知识清单试题及答案
- 2025年四年级音乐理论试题
- 2017版银皮书中英文对照翻译稿
- GB/T 33825-2017密封继电器用钢包铜复合棒线材
- GB/T 17702-2013电力电子电容器
- GB/T 16958-2008包装用双向拉伸聚酯薄膜
- GB/T 14846-2014铝及铝合金挤压型材尺寸偏差
- GB/T 14459-2006贵金属饰品计数抽样检验规则
- GB 30531-2014商用燃气灶具能效限定值及能效等级
- GA/T 594-2006保安服务操作规程与质量控制
- GA 258-2009警服单裤
- 长沙英文介绍加解说词
- 呼吸科呼吸道常见病讲课培训课件
评论
0/150
提交评论