版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录一 程序调试几乎每一个稍微复杂一点的程序都必须经过反复的调试、修改,才能最终完成。很显然,只有正确找出错误的地方才可以将其改正。出错以后怎样找出错误的地方就变得很重要了,下面就谈一些查错的方法。1易语言侦错输入程序代码时有明显的语法错误存在,易语言会提示错误原因,而且错误代码无法写到程序中。如果从其他程序的代码中有语法性的错误,当程序运行到错误的语句时系统就会停下来,并提示程序有错,往往还会提示错误原因,如“命令中含有不能识别的短语或关键字”。错误代码修改正确后,运行程序,若有下一处错误的话易语言还会提示错误代码。这样就可以逐一的将程序中的错误代码更正。如图 1 所示。图 1侦错虽然易语言
2、提供的侦错功能十分强大,但它也只能对程序中致命的或比较严重调试工具的错误进行提示,而对那些在程序运行过程中产生的错误以及跟错误的代码没有直接联系,却导致错误产生的代码,就使用,快速而准确的找到错误代码。2调试方法解释为力了。这就需要其他调试工具和调试命令的配合易语言提供的调试方法,如图 2 所示。图 2 易语言调试方法各调试项目在易语言状态条中的解释如下:在程序现行运行位置单步执行一行程序,如果此程序行调用了子程序,则进入子程序。在程序现行运行位置单步执行一行程序,如果此程序行调用了子程序,系统不会到该子程序中去。在子程序调用现行子程序的语句后中断。在被调用子程序中设置断点,断点行被后,跳出当
3、前子程序,系统至程序调用当前子程序语句的下一行代码。注意:被调用子程序断点后的代码被执行。运行易程序,在当前光标处程序行处中断。设置或清除当前程序行处的断点。清除掉程序中的所有断点。跳到现行即将被执行语句的位置。3法编写一个比较简单的程序,看看程序是如何调试的。例程“调试程序.e”代码如下:该程序是输出 300 以内同时能被 2,3,5 整除的整数。 现在开始调试。 调试有多种方法,先介绍一种不需要设置断点就可以调试程序的方法。首先选中要被调试的程序代码行。然后选择“执行到光标处”子菜单项目。如图 3示。所图 3 程序按“F5”键运行程序,当程序执行到被选中代码时,系统便将程序挂起,并用黄色箭
4、头指示代码执行位置。通常用“F8”键就可以实现把程序每一步执行的情况都反映出来的功能。此方法就是模拟计算机一步步执行程序的过程。当前程序已经被运行,不断按“F8”就可以使程序一步一步执行,直到最后一行代码被执行完毕。为了更直观的了解程序的运行过程,在面板。选中“局部计次变量”如图 4 所示。程序的同时打开易语言的“查改变量”图 4 查改变量面板不断按“F8”的同时,“局部计次变量”的值也不断的改变。下面介绍图 4 中标题为“写入”按钮的使用方法。此按钮的作用是改写被选中变量的值,使被调试程序直接运行符合此变量被写入值的代码行处。首先选中变量值,输入将被写入的值,按“写入”按钮。然后使程序设计界
5、面获得焦点,再按“F8”键程序。例程“调试程序 1.e”,使用改写逻辑变量的值可以更直观的看到程序的运行效果。例程“调试程序 2.e”,按照前面的步骤,在“_启动窗口_创建完毕”事件子程序和“子程序 1”中选中代码行进行,比较各个方法。4断点法面已经学习了基本的程序调试方法。但也有一个缺点,就是在遇到循环次数比较多或者语句比较多的时候,用起来比较费时,下面用一种新的也是常用的调试方法:断点法。所谓断点法,就是在程序执行到某一行的时候,调试器自动“中断”程序运行,并保留这时各变量的状态,方便检查、校对。还用“程序调试 2.e”为例,具体操作如下:选中被调试程序代码,按下“F9”键,这时发现,该行
6、首部加入红点,这表明该行已经被设置成断点行,当每次运行到此行的时候,程序都会自动停下来供编程调试。如下所示:请记住,计算机是执行到断点行之前的一行,断点行并没有执行,所以这时“逻辑变量 2 = 真”这一句并没有执行,其值还是为假。如图 5 所示。图 5 断点代码行未被执行“调用表”面板显示当前被执行代码所在程序集。如图 6 所示。图 6 调用表面板断点除了有以上用处之外,还有另外一个重要用处:它方便大家判断某个语句有没有执行或者是不是在正确的时刻执行,因为有时程序由于人为的疏忽,可能在循环或者递归时出现无法预料的序执行。,这时候通过断点法,就能够判断程序是不是依照预期的顺调试输出命令以下被调试
7、程序为“调试程序 2.e”。1“输出调试文本()”仅在易程序的调试版本中被执行,在发布版本中将被直接跳过;使用本命令可以在易语言调试系统的“输出”面板中输出指定的文本行以帮助调试,该文本之前被自动加上一个星号(*),之后被自动加上回车换行符。如果觉得“改写变量”面板只能显示当前被调试程序变量的一个值,无法与前面或后面程序运行时变量的值进行对比,十分的不方便。就可以用“输出调试文本()”命令实现这个功能。在“ 启动窗口_创建完毕”事件子程序中添加“输出调试文本()”命令如下:注意提供的参数数据类型必须为文本型。按“F5”键运行程序,在“输出”面板中显示,如图 7 所示。图 7 输出面板显示调试文
8、本如果调试时使用到多个“输出调试文本()”命令,就必须提供被显示变量值的变量名或变量值的解释文本。在“子程序”中的最后一个如果真语句中添加“输出调试文本()”命令如下:显示结果如图 8 所示。图 8 标记调试文本可以很清楚的看到,只有“局部计次变量”的值为“30”时程序才会执行到最后一个如果真语句中,并使“逻辑变量 3”的值为真。2“暂停()”仅在易程序的调试版本中被执行,在发布版本中将被直接跳过;可以在子程序中的任何地方放置此命令,使用此命令,就相当于在程序代码中设置断点。3“检查()”仅在易程序的调试版本中被执行,在发布版本中将被直接跳过;执行本命令时,如果给定参数的条件值被计算后结果为假
9、,易程序的执行将被暂停且警示。可以在子程序中的任何地方放置此命令,使用此命令,就相当于在程序代码中设置条件断点。为方便了解“检查()”命令的作用,用“输出调试文本()”命令配合使用。首先将前面添加的两个“输出调试文本()”命令置为草稿。新添加调试命令代码如下:按“F5”键运行程序,当“检查()”命令中的条件不成立时,程序被暂停。提示如图 9 所示。图 9 “检查()”命令被执行分析提示文本,部计次变量”为“1”时,程序无法进入“子程序 1”中的第一个如果真条件语句中执行,所以“逻辑变量 1”的值保持不变,为假,“检查()”命令没有被执行。而 “输出调试文本()”命令正常输出文本(“局部计次变量
10、”的值和“ ”)。部计次变量”为“2”时,符合“子程序 1”中第一个如果真条件语句,其中的代码被执行,“逻辑变量 1”的值为真,“检查()”命令的条件不成立,“检查()”命令被执行并输出提示。4“是否为调试版()”如果当前 EXE 易程序执行文件为易语言编辑环境调试运行程序时编译出来的调试版本,返回真。否则表明为发布版本,返回假。5“信息框()”在框中显示信息,等待用户单击按钮,并返回一个整数告诉用户单击哪一个按钮。“信息框()”是中必不可少的组成部分,是用户与之间的一种通信通道。但在程序的调试过程中也被经常使用到,而且可以达到多种调试方法的功能。如:断点、暂停()、输出调试文本()等方法和命
11、令。将程序中的调试命令全部置为草稿,添加“信息框()”,“子程序 1”代码如下:按“F5”运行程序,信息框提示“局部计次变量”为“30”,信息框被第一次执行,程序被暂停。如图 10 所示。图 10 信息框调试使用“信息框()”显示数据不需要考虑是文本、数值、逻辑值或日期时间。如果同时显示不同数据类型变量和数据值,必须先转换到文本型。注意:“信息框()”不适合在“时钟周期”事件中和循环次数比较多的代码中使用。调试应用总结程序中出现的错误通常分为“语法错误”和“逻辑错误”。所谓“语法错误”是指程序代码不符合易语言语法。这种错误最容易发现和修改:首先在代码输入的时候,系统就会检查并发现一部分语法错误;其次在程序运行的时候,系统执行到有语法错误的代码行,也会发现并错误原因。由此可见,系统会帮助找出所有的语法错误,只要按照其提示信息进行相应的修改即可。所谓“逻辑错误”是指程序流程上、处理上的错误。含有“逻辑错误”的程序能够正常执行,只是执行结果不正确。这类错误系统是不可能发现的,只有靠编程者自己去寻找。实际应用中,通常是将“断点”“单步式结合起来使用。一般的程序调试步骤是这样的:”“查改变量”(以及调试输出)等调试方运行程序,执行所有的程序功能,从而找出并修改所有“语法错误”;通过分析判断,找到可能有“逻辑错误”的代码段;在“有逻辑错误的代码段”前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年预防医学试题及答案宁夏
- 2025年护理交班制度试题及答案
- 2025年铁通笔试试题及答案
- 2025年周围静脉穿刺试题及答案
- 猜字谜课件小组抢答
- 酸性土壤课件
- 物质是运动的课件
- 物理课件公众号
- 大型数据库考试题及答案
- 安全防火面试题目及答案
- 部编版小学三年级语文寒假衔接讲义第4讲:句子复习 (学生版)
- 辽宁省本溪市2024-2025学年七年级(上)期末历史试卷【含答案】
- 道路清扫保洁重点路段分析及解决措施
- 民主建国会会史课件
- 鹦鹉热护理措施
- 员工劳务合同书
- 人体形态学(山东联盟)智慧树知到期末考试答案章节答案2024年青岛滨海学院
- 《办公用房租赁合同》范本标准版可打印
- 人机环管安全管理措施
- 大庆一中、六十九中初四上学期期末质量检测物理试题
- 小学生一、二、三年级家庭奖罚制度表
评论
0/150
提交评论