作者:Colin Nicholls
发布时间:1999.05
翻译:
deepl https://www.deepl.com/translator
格式整理:xinjie
—————————————————
更换字体,因为我看着费劲
如果你和我一样,在一天辛苦的编码工作结束后,调试窗口中的 MS Sans Serif 8 字体会变得非常难读。幸运的是,我们不必忍受这种情况。我们只需使用右键菜单更改字体即可:
变量类型过滤
通过上下文菜单项,可以选择性地过滤局部窗口中显示的变量类型。以这段代码为例:
c1 = “Standard”
LOCAL c2
c2 = “Local”
PRIVATE c3
c3 = “Private”
PUBLIC c4
c4 = “Public”
oForm = CREATEOBJECT(“form”)
执行代码后,让我们看看更改变量过滤设置会产生什么效果:
这三张截图显示了三种不同的变量过滤器设置对局部窗口显示内容的影响。其中有几处值得注意:
标准(Standard)控制私有变量的显示。我不知道为什么叫 "标准",如果叫 "默认 "就更好了。
对象过滤器在其他三个过滤器之上工作。换句话说,如果你的对象引用是一个私有变量,那么除非包括 "标准",否则即使勾选了 "对象",它也不会显示出来。
变量值编辑
局部窗口的一个非常有用的功能是可以直接编辑变量值。双击值(Value)列并编辑值。下图显示了我在局部窗口中直接更改表单标题的情况:
本图显示的是一个包含对象引用的变量。您可以向下递归扩展嵌套成员对象,显示每个对象的属性值。您还可以对数组执行此操作,以显示每个数组元素的值。
提示:右键单击其中一个调试窗口的标题栏,即可隐藏或者显示任何调试窗口:
接下来,让我们看看"监视(Watch) "窗口。
监视窗口
从 "工具 "菜单中选择 "监视";或者使用命令 ACTIVATE WINDOW WATCH;或者,如果调试工具栏可见,按下 "监视 "复选按钮,即可显示 "监视 "窗口:
监视窗口在外观上与局部窗口类似,不同之处在于它没有过程选择器,而是一个文本输入区域,可让您键入任何要跟踪的表达式。它有三列可调整大小的内容:表达式(标题 "名称 "有误)、值和类型。
当代码逐行执行时,任何改变其值的表达式都会高亮显示,默认为红色。
将表达式拖入监视窗口
将表达式拖入监视窗口的一种方法是从其他地方拖入一个表达式。下面是一个从跟踪窗口拖放变量的模拟示例:
您还可以从局部窗口或命令窗口中选中并拖动表达式。
变量值编辑和表达式编辑
与局部窗口(如上所述)一样,您可以直接在监视窗口中编辑变量值。此外,还可以在监视窗口中编辑观察表达式:双击 "名称 "列中的表达式,即可对其进行编辑,从而 "监视 "不同的表达式:
设置断点
正如我们在上面的跟踪窗口中所看到的,双击表达式左侧的灰色边距区域即可设置断点。红点表示已设置断点。当表达式的下一个值发生变化时,程序执行将暂停。相应的断点类型是 "表达式发生变化时断开"。
警告:我的好朋友 Matt Peirse 告诉了我一个 "小窍门":如果您在监视窗口中的表达式上已有一个断点,而您又将表达式修改为不同的表达式(如上所述),那么监视窗口将显示带有断点的新表达式。不过,"断点 "对话框会显示,原来的表达式和修改后的表达式都设置了断点并处于激活状态。
相关警告:在 "监视 "窗口或 "跟踪 "窗口中看不到红点,并不意味着没有激活的红点。断点对话框会累积这些断点,直到你要求它释放时才会释放。
一些有用的监视表达式
下面是我过去使用过的一些有用的监视表达式:
您可以通过高亮显示表达式并按下 DELETE 键,将其从监视窗口中删除;也可以使用上下文菜单将其删除:
选择 "删除监视 "可以删除删除表达式。您还可以使用 "插入监视 "将光标置于表达式输入文本框中。这样,新的表达式就会添加到表达式列表中(而不是像你想象的那样插入到高亮显示的行中!)。
已在 6.0 中修正:显示特殊的字符串
在 Visual FoxPro 以前的版本中,"局部 "和 "监视 "窗口在显示包含不可打印字符的字符串时有一些问题:
cMemo = "This is a multiline" + chr(13)+chr(10) + "memo string"
cBin = "chr 0 here ->" + chr(0) + "<-"
以前,窗口会在 chr(0) 或 char(13) 处截断这些字符串的显示。在 Visual FoxPro 6.0 中,它们可以正确显示:
这里我们可以看到,CRLF 使用了竖条字符占位符。