[转]Delphi——调试(2)断点和数据监视

1.断点的使用

(1)设置断点

首先在Code Editor中选定你想设置断点的代码行,而后进行如下的任一种操作:

1)按F5;

2)单击选定代码行左边的空白;

3)从Breakpoint List右键菜单中选择Add Breakpoint命令;

4)选择代码编辑器窗口中的右键菜单的Toggle Breakpoint命令;

5)选择Run菜单的Add Breakpoint命令,打开Edit Breakpoint Dialog Box(断点编辑对话框),而后选择New命令确认一个新的断点设置,或者选择Modify命令对一个存在的断点进行修改。

断点必须位于可执行代码行上,凡设置在注释、空白行、变量声明上的断点都是无效的。另外,断点既可以在设计状态下设置,也可以在运行调试状态下设置。

(2)Breakpoint List(断点列表)窗口

断点列表窗口列出了所有断点所在的源文件名、行号、条件以及已通过的次数。如果一个断点非法或失去功能,则在列表窗口中变灰。

断点列表窗口可以通过选择View|Debug Windows|Breakpoint命令打开。断点列表窗口是断点操作的基础。

(3)显示和编辑断点处的代码

利用断点列表窗口可以快速找到断点在源代码中的位置。

首先选定断点而后从右键菜单中选择View Source或Edit Source命令。此时Code Editor更新,显示该断点位置处的代码。如果选择的是View Source命令,则断点列表窗口仍保持活动;如果选择的是Edit Source命令,则Code Editor获得输入焦点,可以在断点位置修改源代码。

(4)断点功能的丧失和恢复

使断点失去功能可以使断点从当前程序运行中隐藏起来。假如定义了一个断点,当前并不需要,但可能在以后使用,则这一功能是很有用的。

隐藏断点有以下的方法:

1)选择断点列表窗口右键菜单的Enable命令可以使当前选中断点失去功能。

2)代码行左边的断点标志小圆的右键菜单中的Enable命令可以使相应断点失去功能。

用同样的方法可以恢复断点。

(5)断点的删除

断点删除可以在代码编辑器或断点列表窗口中进行,有以下一些方法可以使用:

1)把光标停到包含断点的行并按F5键。

2)选择右键菜单的Debug子菜单的Toggle Breakpoint命令。

3)单击包含断点行左边的终止符。

4)在断点列表窗口进行时,选中欲删除的断点并选择右键菜单的Delete命令。

其中步骤1)~3)都是在代码编辑器中进行。

(6)修改断点属性

在断点列表窗口双击选定断点或从右键菜单中选择Properties命令,可以打开Source Breakpoint Properties对话框,用于显示和修改断点的属性。

利用断点编辑对话框可以改变断点的位置,设置断点条件。

断点条件包括两种:布尔表达式和通过次数。

Condition文本框用于设置布尔表达式条件。如果表达式值为真(或非零)则程序运行在断点处中止;否则调试器将忽略该断点。

Pass count文本框用于设置通过次数条件,即只有当程序运行在该断点处通过设定次数时,程序运行才在该断点处中止。这往往用于对循环体内语句的调试。

有一点应引起注意的是:当Condition和Pass count同时设置时,Pass count是指满足条件的通过次数。

(7)断点和程序执行点颜色的设置

选择Tools菜单,再选择Editor Options命令进入代码编辑器设置对话框,而后选择Color标签页。此时即可对有关项按自己的希望设置背景和前景色。

2.监视数据的值

(1)监视表达式

Watch List(监视列表)窗口显示程序运行中当前监视表达式的值。

选择View命令,再选择Debug Windows子菜单,再选择Watches命令就可以打开监视列表(Watch List)窗口。

从代码编辑器中添加一个监视表达式最方便的方法是:首先在要监视的表达式所在行单击,然后从代码编辑器右键菜单中选择Debug/Add Watch at Cursorwgwy命令把表达式添加到监视列表窗口。

也可以利用下面的方法产生一个监视表达式:

1)用下列方法之一打开Watch Properties(监视属性)对话框

·从主菜单中选择Run/Add Watch命令。

·在光标处从代码编辑器右键菜单中选择Add Watch命令。

·按Ctrl+F5键。

·双击监视列表窗口中的一个监视表达式。

·从监视列表窗口选定一个表达式而后从右键菜单中选择Edit命令。

2)在监视属性对话框的Expression下拉列表框中输入或选择一个被监视的表达式。

3)设定表达式的显示格式和使用状态。

与断点类似,利用右键菜单也可以使监视表达式功能丧失、恢复或删除监视表达式。

转自:http://blog.163.com/l1_jun/blog/static/143863882012489148277/

原文地址:https://www.cnblogs.com/rongxiaoya/p/2792680.html