作者:Colin Nicholls
发布时间:1999.05
翻译:
deepl https://www.deepl.com/translator
格式整理:xinjie
—————————————————
工具提示值显示
如下图所示,跟踪窗口的一个非常令人兴奋的功能是,如果将光标放在变量或字段名上,其当前值就会通过工具提示显示出来:
但是,这不适用于 #define 表达式,也不适用于当前执行的过程或方法以外模块中的值。
当你在运行程序时,一个黄色的小箭头会指向下一行要执行的代码。当你查看调用堆栈中较高的方法或过程时,该方法中的当前代码行会用黑色三角形表示,如图所示:
将代码拖动到命令窗口
跟踪窗口是一个拖动源:例如,您可以选中一段代码,将其拖放到命令窗口中执行。
提示:在跟踪时,您还可以在命令窗口中使用 THIS 和 THISFORM!
在两个断点之间跟踪
通常情况下,当您Resume, Run to cursor 或 Step out,跟踪窗口会保持静态,而代码会继续执行。打开 "在两个断点间跟踪(Trace between breaks) "后,你就可以在跟踪窗口中看到代码自动逐行执行。您可以从上下文菜单中选择 "调速(Throttle)",并在弹出的对话框中设置以秒为单位的值,从而设置语句执行之间的延迟时间:
警告:在断点之间开启跟踪(尤其是在调速设置为非零的情况下),然后在 Resume 之前,请确保已将 "ESCAPE "设置为 "ON"。否则,您的程序将不可避免地逐行进入应用程序的下一个等待状态,即使这需要花费数小时。如果您在程序中的某个地方将 "ESCAPE "设置为 "OFF"(我们大多数人都这样做),那么您就有麻烦了。
或者,在代码的下游设置一个断点,确保程序暂停。这就是...
设置断点
断点是程序暂停执行的条件。在特定代码行设置断点的最简单方法是双击代码左侧的灰色区域。断点可以启用或禁用,我们很快就会看到。下图显示了设置了两个断点的代码。填充圆点表示活动断点,透明圆点表示非活动断点。
您还可以按下调试工具栏上的切换断点按钮,在当前代码行设置断点。
提示:也可以使用设计时源代码编辑窗口右键菜单上的设置断点选项,在光标所在的代码行上设置断点。
警告:只有当代码行被实际执行时,断点才会起作用。如果断点位于未执行的代码块中,程序仍将继续运行。
这些断点在哪里?有没有一个地方可以让我们看到当前所有的断点?有一个地方,它也是另一个更强大的设置断点的地方--断点对话框:
断点对话框
单击调试工具栏上类似 "停止所有窗口 "图标的按钮,可以显示模式化的断点对话框(见上文 "调试器工具栏")。(据我所知,这是在 FoxPro frame 中工作时显示断点对话框的唯一方法。
调试器工具栏上有三个专门用于断点的按钮:
在这里,可以单独启用或禁用当前定义的断点,也可以完全删除。如果你决定不清除所有断点定义,可以点击 "取消 (Cancel)"来撤销操作。而工具栏上的按钮则是冷酷无情的清除所有断点定义。
注意:在命令窗口中执行 CLEAR ALL 命令并不能清除这些断点定义。
断点对话框可以创建四种类型的断点。让我们依次来了解一下: