如果能够识别产生错误的语句,那么单个断点就有助于对问题定位。但更常见的情况是只知道产生错误的代码的大体区域。断点有助于将问题区域进行隔离。然后用跟踪和单步执行来观察每个语句的效果。如果有必要,还可在一条新行上开始执行,从而跳过几条语句或倒退回去。
单步执行模式 | 描述 |
跟踪 | 执行当前语句并在下一行处中断执行,即使它处在另一个过程中亦如此。 |
单步 | 执行当前行调用的整个过程,并在当前行之后的一行处中断。 |
单步出 | 执行当前过程的其余部分,并在调用该过程的语句之后的一条语句处中断。 |
注意 必须在中断模式下使用这些命令。在设计时或运行时它们都是不可用的。
可用跟踪来一次一条语句地执行代码。(这也被称为单步执行。)在单步通过每条语句之后,可以通过查看应用程序的窗体或调试窗口来看它的效果。
要单步执行代码,请
-或-
单击“调试”工具栏的“单步”按钮。(为显示“调试”工具栏,在 Visual Basic 工具栏上单击鼠标右键并选择“调试”选项。)
-或-
按下 F8。
当单步执行整个代码时,Visual Basic 暂时切换到运行时来执行当前语句,并前进到下一条语句。然后又回过头来切换到中断模式。
注意 Visual Basic 允许分别跟踪一些语句,即使它们处在同一行内。一行代码可包含两条或更多语句,其间用冒号 (:
) 隔开。Visual Basic 用一个矩形轮廓将要执行的下一条语句醒目标出。断点只应用于多语句行的第一条语句。
除了当前语句包含过程调用的情况外,在其它时刻,单步与跟踪是相同的。它们之间的差别是,跟踪将进入到被调用的过程里面,而单步则把被调用过程当成单元来执行,然后到达当前过程的下一条语句。例如,假定一条语句调用了过程 SetAlarmTime:
SetAlarmTime 11, 30, 0
如果选择跟踪,那么“代码”窗口将显示 SetAlarmTime 过程,并把过程的开始语句行设置为当前语句。只有在需要分析 SetAlarmTime 的内部代码时,这才是最佳选择。
如果使用单步,则“代码”窗口继续显示当前过程。调用 SetAlarmTime 之后就立即执行语句,除非 SetAlarmTime 包含断点或 Stop 语句。如果要停留在同级别代码上,而且不需要分析 SetAlarmTime 过程,则选择单步。
可在跟踪和单步之间随意选择。使用什么命令,这取决于在任何已知时刻要分析代码的哪个部分。
要使用单步,请
-或-
单击“调试”工具栏的“单步”按钮。(显示“调试”工具栏,在 Visual Basic 工具栏上单击鼠标右键并选择“调试”选项。)
-或-
按下 SHIFT+F8。
除了要运行当前过程的其余代码外,单步出与单步大同小异。如果过程被另一个过程调用,则前者立即到达紧跟在调用该过程的语句之后的语句处。
要使用单步出,请
-或-
单击“调试”工具栏的“逐过程”按钮。(显示“调试”工具栏,在 Visual Basic 工具栏上单击鼠标右键并选择“调试”选项。)
-或-
按下 CTRL+SHIFT+F8。
当应用程序处在中断模式时,可用“运行到光标处”命令在代码的后部选择想要停止运行的语句。因此可以略过不感兴趣的那部分代码,比如巨大的循环。
要运行到光标处,请按照以下步骤执行:
-或-
选择“调试”菜单的“运行到光标处”命令。
在调试或试验应用程序时,可以使用“设置下一条语句”命令跳过部分代码──例如,包含已知错误的某部分代码──从而可继续跟踪其它问题。也可返回到前面的语句处,用不同的属性或变量的值测试应用程序的某部分。
可用 Visual Basic 设置不同的代码行来执行下一行,只要这行代码也在同一过程中。此时达到的效果与使用跟踪时相同,只是跟踪仅执行过程的下一行代码。通过设置下一条执行语句,可以选择下一次将执行哪行代码。
要设置下一条执行语句,请按照以下步骤执行:
-或-
选择“调试”菜单的“运行到光标处”、“单步入”、“单步”或“逐过程”。
可用“显示下一条语句”把光标设置到下一个要执行的行。如果已经执行错误处理程序中的代码,但不能肯定要在哪儿恢复运行,则本功能极为方便。“显示下一条语句”只在中断模式下使用。
要显示下一个将要执行的语句,请按照以下步骤执行:
-或-
选择“调试”菜单的“运行到光标处”、“单步入”、“单步”或“逐过程”。