第5章 程序调试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
① 在程序运行过程中,单击“运行”菜单中的“中断” 命令或按[Ctrl+Break]组合键。 ② 在程序运行过程中,如果程序出现了错误,在弹出 的对话框中单击“调试”按钮,则进入中断模式。 ③ 在设计模式下设置了断点行。
Visual Basic 程 序 设 计
设置断点有以下两种方法:
① 在代码编辑器窗口中将光标移动到打算作为断点的语句,然后单 击“调试”菜单中的“切换断点”命令,或按[F9]键,或单击“调试” 工具栏上的“切换断点”按钮。 ② 在代码编辑器窗口中将光标移动到打算作为断点的语句左边的灰 色条状区域,然后单击。
结束 切换断点 程 序 逐语句 设 计 逐过程 跳出
执行下一行可执行程序,并逐行执行以后的每一行程序。 如果程序调用了另一个过程,则逐语句执行该过程的每一行
执行下一行可执行程序,并逐行执行以后的每一行程序。 如果程序调用了另一个过程,则完整执行该过程 执行当前过程剩下的可执行程序,并在调用本过程的下一行中断 显示局部变量的当前值 在中断模式下,可以执行代码或查询变量值
Visual Basic 程 序 设 计
通过检查,纠正了存在的错 误,就应把断点取消。在断 点行重复设置断点的操作就 会取消断点。若要取消程序 中所有的断点可以使用“调 试”菜单中的“清除所有断 点”命令或按 [Ctrl+Shift+F9]组合键。
5.2.3程序跟踪
当程序停在设有断点的位置时,即可使用“调试”菜单中的单步执行命令来 移动断点的位置。单步执行命令有以下几种: Visual Basic
Visual Basic 程 序 设 计
Visual Basic 程 序 设 计
第5章 程序调试
5.1 错误类型
语法错误 逻辑错误 运行错误
Visual Basic 程 序 设 计
5.1.1 语法错误
语法错误是指在程序编写过程中出现不符合VB语 法规范的语句引起的错误。例如:语句语法格式 错误、关键字拼写错误、没有正确地使用标点符 号、分支结构或循环结构不完整或者不匹配等等。
Visual Basic 程 序 设 计
2.“本地”窗口
“本地”窗口用于显示当 前过程中所有局部变量的名 称、类型及取值,控件的属 性名称、类型及取值。
Visual Basic 程 序 设 计
பைடு நூலகம்
右图“表达式”列显示了所 有变量的名称;“值”列显 示相应变量的值;“类型” 列显示了各变量的类型。第 一行的Me代表当前窗体,用 鼠标单击Me前的加号将显示 窗体中各个控件对象的属性 “树”,即可查看当前窗体 中各个控件属性的当前值。 当程序的执行从一个过程切 换到另一个过程时,“本地” 窗口的内容会发生改变。
Visual Basic 程 序 设 计
默认情况下,VB会缺省选中“自动语法检测”选项,在 用户输入代码时自动检测和改正语法错误。一旦发现语法 错误,系统会自动加亮显示有错误的语句,并停止运行代 码,弹出信息提示框来显示错误类型并提供解决的方法。
5.1.2 逻辑错误
逻辑错误是指程序代码没有语法错误,程序也能正常运行, 但运行结果不能实现预定的设计要求而产生的错误。例如 逻辑运算错误、变量的作用域范围设置错误、循环条件设 置错误、死循环等。 对于逻辑错误,系统无法自动检测,只能由用户通过分析 和测试来验证结果的正确性。如果结果有误,则应检查是 否存在逻辑错误,并加以排除。
5.2.1 Visual Basic调试工具
VB提供了一个专用于程序调试的工具栏, 利用该工具栏所提供的调试工具,可以方 便有效地查找程序中的错误。
Visual Basic 程 序 设 计
“调试”工具栏各按钮的功能
按钮名称 运行程序 暂时停止程序运行,并进入中断模式 停止程序运行,并返回设计模式 用于设置和取消断点。断点通常设置在程序中可能出现错误的地方 item Visual Basic 启动 中断
5.2.4调试窗口
VB 有三种窗口用于调试程序:
“立即”窗口 “本地”窗口 “监视”窗口。
Visual Basic 程 序 设 计
在中断模式下,从“视图”菜单或从“调 试”工具栏上选择相应的按钮都可以进入。
1.“立即”窗口
“立即”窗口用于显示当前过程中的有关信息,输出变量 或属性的值,还可以重新设定变量或属性的值,允许用户 在调试程序时执行单个的过程。 在程序设计中可以通过Debug.Print语句将某些变量及属 性值输出到“立即”窗口,也可以直接在该窗口中使用 Print语句或“?”显示变量的值,以观察程序运行情况。
3.“监视”窗口
“监视”窗口用于显示当前所监视的表达式的值。指定的表达 式称为“监视表达式”。利用“调试”菜单中的“添加监视” 命令或“快速监视”命令可以添加或修改“监视表达式”并 设置监视类型。 在“表达式”文本框中输入要监视的表达式或变量名,再在 “上下文”框内“过程”和“模块”列表中选定监视表达式 的位置,最后根据情况确定监视类型即可。 添加了监视后,启动程序。当程序运行被中断时,打开“监 视”窗口就可看到监视表达式的当前值。
5.1.3运行错误
运行错误是指在程序运行过程中发生的错 误。代码在语法上没有错误,却无法运行。 例如除法运算中除数为0、使用一个不存在 的对象或对控件属性设置不正确、数组下 标越界、数据溢出等。
Visual Basic 程 序 设 计
5.2 程序调试
程序中断 跟踪 设置监视点 监视表达式
Visual Basic 程 序 设 计
在窗体上输出 s=1*2*3*4*5*6*7*8*9*10的结果 Visual Basic 程 序 设 计
Private Sub Form_Click() Dim s As Single, i As Integer For i = 1 To 10 s=s*i Next i Print "s="; s End Sub
1.逐语句执行
单步执行代码,遇到过程调用时就进入相应过程中,按程序中语句执行的顺 序每次只执行一条语句,可逐语句的检查程序执行状况或执行结果。 通过单击“调试”菜单中的“逐语句”命令或“调试”工具栏上的“逐语 句”按钮,也可按[F8]键启动逐语句执行。每按一次[F8]键,便执行一条语句。
程 序 2.逐过程执行 如果确信执行某个过程不会产生错误,就可以使用逐过程快速跟踪调试程序。 设 它也是单步执行代码,但把过程仅作为一步,而不进入子程序内部跟踪语句。 计 通过单击“调试”菜单中的“逐过程”命令或“调试”工具栏上的“逐过程” 按钮,也可按[Shift+F8]组合键启动“逐过程”执行代码。每按一次[Shift+F8] 键,便执行一条语句。 3.从过程中跳出 逐语句执行进入过程内部后,可跳出当前过程。按[Ctrl+Shift+F8]组合键或 选择“调试”菜单中的“跳出”命令可从过程中跳出。 通过单步执行,可以对程序的代码进行逐行调试、监视变量,还可以跟踪程 序流程。特别是分支和循环结构,可以通过单步执行,了解程序执行是否进 入循环、循环变量的改变情况等。
本地窗口
立即窗口 监视窗口
显示选定表达式的值
在中断模式下,显示表达式的当前值 在中断模式下,列出当前活动过程的调用,对话框中显示已经被调用但尚未 结束的所有过程
快速监视
调用堆栈
5.2.2程序中断
1.设置断点 程序在执行的过程中被暂时停止称为“中 断”, 程序被暂时停止的位置称为“断点”。断 点通常设置在程序的某些关键位置,以便找出程 序中的错误。 要使用调试工具对程序进行调试,必须首先进入 中断模式,进入中断模式有以下三种情况:
Visual Basic 程 序 设 计
设置断点有以下两种方法:
① 在代码编辑器窗口中将光标移动到打算作为断点的语句,然后单 击“调试”菜单中的“切换断点”命令,或按[F9]键,或单击“调试” 工具栏上的“切换断点”按钮。 ② 在代码编辑器窗口中将光标移动到打算作为断点的语句左边的灰 色条状区域,然后单击。
结束 切换断点 程 序 逐语句 设 计 逐过程 跳出
执行下一行可执行程序,并逐行执行以后的每一行程序。 如果程序调用了另一个过程,则逐语句执行该过程的每一行
执行下一行可执行程序,并逐行执行以后的每一行程序。 如果程序调用了另一个过程,则完整执行该过程 执行当前过程剩下的可执行程序,并在调用本过程的下一行中断 显示局部变量的当前值 在中断模式下,可以执行代码或查询变量值
Visual Basic 程 序 设 计
通过检查,纠正了存在的错 误,就应把断点取消。在断 点行重复设置断点的操作就 会取消断点。若要取消程序 中所有的断点可以使用“调 试”菜单中的“清除所有断 点”命令或按 [Ctrl+Shift+F9]组合键。
5.2.3程序跟踪
当程序停在设有断点的位置时,即可使用“调试”菜单中的单步执行命令来 移动断点的位置。单步执行命令有以下几种: Visual Basic
Visual Basic 程 序 设 计
Visual Basic 程 序 设 计
第5章 程序调试
5.1 错误类型
语法错误 逻辑错误 运行错误
Visual Basic 程 序 设 计
5.1.1 语法错误
语法错误是指在程序编写过程中出现不符合VB语 法规范的语句引起的错误。例如:语句语法格式 错误、关键字拼写错误、没有正确地使用标点符 号、分支结构或循环结构不完整或者不匹配等等。
Visual Basic 程 序 设 计
2.“本地”窗口
“本地”窗口用于显示当 前过程中所有局部变量的名 称、类型及取值,控件的属 性名称、类型及取值。
Visual Basic 程 序 设 计
பைடு நூலகம்
右图“表达式”列显示了所 有变量的名称;“值”列显 示相应变量的值;“类型” 列显示了各变量的类型。第 一行的Me代表当前窗体,用 鼠标单击Me前的加号将显示 窗体中各个控件对象的属性 “树”,即可查看当前窗体 中各个控件属性的当前值。 当程序的执行从一个过程切 换到另一个过程时,“本地” 窗口的内容会发生改变。
Visual Basic 程 序 设 计
默认情况下,VB会缺省选中“自动语法检测”选项,在 用户输入代码时自动检测和改正语法错误。一旦发现语法 错误,系统会自动加亮显示有错误的语句,并停止运行代 码,弹出信息提示框来显示错误类型并提供解决的方法。
5.1.2 逻辑错误
逻辑错误是指程序代码没有语法错误,程序也能正常运行, 但运行结果不能实现预定的设计要求而产生的错误。例如 逻辑运算错误、变量的作用域范围设置错误、循环条件设 置错误、死循环等。 对于逻辑错误,系统无法自动检测,只能由用户通过分析 和测试来验证结果的正确性。如果结果有误,则应检查是 否存在逻辑错误,并加以排除。
5.2.1 Visual Basic调试工具
VB提供了一个专用于程序调试的工具栏, 利用该工具栏所提供的调试工具,可以方 便有效地查找程序中的错误。
Visual Basic 程 序 设 计
“调试”工具栏各按钮的功能
按钮名称 运行程序 暂时停止程序运行,并进入中断模式 停止程序运行,并返回设计模式 用于设置和取消断点。断点通常设置在程序中可能出现错误的地方 item Visual Basic 启动 中断
5.2.4调试窗口
VB 有三种窗口用于调试程序:
“立即”窗口 “本地”窗口 “监视”窗口。
Visual Basic 程 序 设 计
在中断模式下,从“视图”菜单或从“调 试”工具栏上选择相应的按钮都可以进入。
1.“立即”窗口
“立即”窗口用于显示当前过程中的有关信息,输出变量 或属性的值,还可以重新设定变量或属性的值,允许用户 在调试程序时执行单个的过程。 在程序设计中可以通过Debug.Print语句将某些变量及属 性值输出到“立即”窗口,也可以直接在该窗口中使用 Print语句或“?”显示变量的值,以观察程序运行情况。
3.“监视”窗口
“监视”窗口用于显示当前所监视的表达式的值。指定的表达 式称为“监视表达式”。利用“调试”菜单中的“添加监视” 命令或“快速监视”命令可以添加或修改“监视表达式”并 设置监视类型。 在“表达式”文本框中输入要监视的表达式或变量名,再在 “上下文”框内“过程”和“模块”列表中选定监视表达式 的位置,最后根据情况确定监视类型即可。 添加了监视后,启动程序。当程序运行被中断时,打开“监 视”窗口就可看到监视表达式的当前值。
5.1.3运行错误
运行错误是指在程序运行过程中发生的错 误。代码在语法上没有错误,却无法运行。 例如除法运算中除数为0、使用一个不存在 的对象或对控件属性设置不正确、数组下 标越界、数据溢出等。
Visual Basic 程 序 设 计
5.2 程序调试
程序中断 跟踪 设置监视点 监视表达式
Visual Basic 程 序 设 计
在窗体上输出 s=1*2*3*4*5*6*7*8*9*10的结果 Visual Basic 程 序 设 计
Private Sub Form_Click() Dim s As Single, i As Integer For i = 1 To 10 s=s*i Next i Print "s="; s End Sub
1.逐语句执行
单步执行代码,遇到过程调用时就进入相应过程中,按程序中语句执行的顺 序每次只执行一条语句,可逐语句的检查程序执行状况或执行结果。 通过单击“调试”菜单中的“逐语句”命令或“调试”工具栏上的“逐语 句”按钮,也可按[F8]键启动逐语句执行。每按一次[F8]键,便执行一条语句。
程 序 2.逐过程执行 如果确信执行某个过程不会产生错误,就可以使用逐过程快速跟踪调试程序。 设 它也是单步执行代码,但把过程仅作为一步,而不进入子程序内部跟踪语句。 计 通过单击“调试”菜单中的“逐过程”命令或“调试”工具栏上的“逐过程” 按钮,也可按[Shift+F8]组合键启动“逐过程”执行代码。每按一次[Shift+F8] 键,便执行一条语句。 3.从过程中跳出 逐语句执行进入过程内部后,可跳出当前过程。按[Ctrl+Shift+F8]组合键或 选择“调试”菜单中的“跳出”命令可从过程中跳出。 通过单步执行,可以对程序的代码进行逐行调试、监视变量,还可以跟踪程 序流程。特别是分支和循环结构,可以通过单步执行,了解程序执行是否进 入循环、循环变量的改变情况等。
本地窗口
立即窗口 监视窗口
显示选定表达式的值
在中断模式下,显示表达式的当前值 在中断模式下,列出当前活动过程的调用,对话框中显示已经被调用但尚未 结束的所有过程
快速监视
调用堆栈
5.2.2程序中断
1.设置断点 程序在执行的过程中被暂时停止称为“中 断”, 程序被暂时停止的位置称为“断点”。断 点通常设置在程序的某些关键位置,以便找出程 序中的错误。 要使用调试工具对程序进行调试,必须首先进入 中断模式,进入中断模式有以下三种情况: