在“字体”对话框中显示了所有活动过程调用的一个列表。活动过程调用是应用程序中已启动但尚未完成的过程。
在应用程序执行一系列嵌套过程时,“字体”对话框用有助于跟踪程序的操作。例如,一个事件过程可以调用第二个过程,而第二个过程又可以调用第三个过程─ 一切都发生在启动这条链的事件过程完成之前。这样的嵌套过程调用很难跟踪,并且还可能把调试过程弄复杂。图 13.17 显示了“字体”对话框。
注意 如果在空闲循环期间把应用程序置为中断模式,那么,在“字体”对话框中将不会出现任何项。
图 13.17 “字体”对话框
仅在应用程序处于中断模式下使才可显示“字体”对话框。
要显示“字体”对话框,请
-或-
单击“调试”工具栏的“字体”按钮。(显示“调试”工具栏,在 Visual Basic 工具栏上单击鼠标右键并选择“调试”选项。)
-或-
按下 CTRL+L。
-或-
单击“本地”窗口中“过程”框旁的按钮。
“字体”对话框列出了一系列嵌套调用中的所有活动过程调用。把最早的活动过程调用放在列表底部,而在列表顶部添加随后的过程调用。
每个过程的信息用模块或窗体的名字开头,随后是被调用过程的名字。因为“字体”对话框不指出分配给窗体实例的变量,所以不对窗体或类的多个实例进行区分。关于窗体的多个实例的详细信息,请参阅“用对象编程”和“设计用户界面”中的“多文档 (MDI) 应用程序” 。
可用“字体”对话框显示过程中的语句,该过程将应用程序的控件传递给列表中的下一个过程。
要显示调用“调用堆栈”对话框中的另一个过程的语句,请按照以下步骤执行:
关闭对话框后,该过程将在“代码”窗口中显示出来。
“代码”窗口中的光标所处位置指出调用“字体”对话框中的下一个过程的语句。如果在“字体”对话框中选择当前过程,则光标将出现在当前语句处。
在确定“堆栈溢出”错误是否由递归所致时,“字体”对话框是很有用的。递归是例程调用自身的能力。可通过将以下代码添加到一个新工程的窗体中来测试它:
Sub Main()
Static intX As Integer
intX = intX + 1
Main
End Sub
Private Sub Form_Click()
Main
End Sub
运行该应用程序,单击窗体,然后等待“堆栈溢出”的错误消息。选择“调试”按钮,然后选择“视图”菜单的“字体”。如图 13.18 所示,可看到许多 Main 过程调用。
图 13.18 “字体”对话框列出递归过程
象进行复选那样在“代码”窗口中突出显示 intX
,并选择“调试”菜单的“快速监视”。intX
的值表示的是中断前执行 Main 过程的次数。