作者:Colin Nicholls
发布时间:1999.05
翻译:
deepl https://www.deepl.com/translator
格式整理:xinjie
—————————————————
在位置处断点
这相当于在跟踪窗口或编辑器窗口中的特定代码行上设置断点。
在此对话框中设置断点的唯一缺点是语法繁琐:必须在两个不同的数据输入框中键入方法名称、行号和文件名称:
不过,我直到最近才意识到,断点对话框还允许我们指定该行代码在执行多少次后才会暂停,这对于调试循环结构非常有用,因为只有在循环执行一定次数后才会出现问题:
表达式为真时在位置处中断
作为 "在位置处中断 "类型的变体,断点对话框提供了 "如果表达式为真,则在位置处中断 "类型。这样,我们就可以添加一个逻辑条件,该条件必须为真,程序才能暂停:
表达式为真时中断
断点对话框中的另一种断点类型是 "表达式为真时断开"。这种类型的断点适用于任何程序,而不是前两种类型中的特定源代码模块。
表达式发生变化时断点
第四种断点可以在断点对话框之外设置,稍后我们将看到。断点以表达式的形式出现,当表达式求值为不同值时,程序将暂停。
在实践中,我使用观察(Watch)、跟踪(Trace)或代码编辑窗口中的简便方法设置断点,只有在需要停用断点或通过在断点定义中添加通过次数或逻辑表达式来增强断点时,才会使用断点对话框。
局部窗口
从 "工具 "菜单中选择 "局部";或者使用命令 ACTIVATE WINDOW LOCALS;或者,如果调试工具栏可见,按下 "局部 "复选按钮,即可显示 "局部 "窗口:
局部窗口可以说是一个变量观察窗口,自动显示当前作用域中的每个变量。变量名、值和数据类型列的宽度可以调整。
尽管名为局部变量窗口,但它并不只适用于定义为 LOCAL 的变量。因为该窗口会显示当前作用域中的所有变量,所以 PRIVATE 和 PUBLIC 变量也会显示出来,包括那些你忘记声明为 LOCAL 变量、因此属于 PRIVATE 变量的意外变量。
窗口顶部的组合列表框允许我们选择当前调用堆栈中的任何过程。当我们在堆栈中上下移动时,变量列表也会更新和刷新。事实上,有时你必须这样做,才能使变量列表正确刷新!有时,它可能很迟钝。