delphi初级教程之delphi断点调试二

来源:互联网 发布:淘宝客联盟社区 编辑:程序博客网 时间:2024/06/08 12:22

四、模块断点

要监视模块的第一次加载,可以使用【Run】菜单中的【Add Breakpoint】命令,再选 择【Module Load Breakpoint】,出现【Add Module】对话框,如图 模块断点1 所示。

模块断点1

在【Module  Name】框内指定一个要监视的模块,通常是 DLL 或 BPL。也可以单击

【Browser】按钮定位一个模块。以后,当这个模块第一次被调入内存时,程序就会暂停, 由调试器接管控制权,就好像遇到断点一样。

五、指定遇到断点时的行为

一般来说,当遇到断点时,程序将暂停。不过,在

Delphi 中,除了使程序暂停外,还可以指定其他行为。 要指定遇到断点时的行为,可以在设置断点时进行。

使用【Run】菜单中的【Add Breakpoint】命令,再选择 一种断点类型,Delphi 将打开【Add Breakpoint】对话框。 然后,单击【Advanced】按钮,弹出【Add Breakpoint】 对话框,如图 断点行为 所示。

如果选中【Break】复选框,当遇到断点时,程序将暂停。这是默认的行为。

如果选中【Ignore subsequent exceptions】复选框, 以后将忽略当前进程触发的异常,也就是说,遇到异常时调试器不会停止。这个复选框与下面的【Handlesubsequent exceptions】复选框成对使用,可以使一段代 码忽略异常。

如果选中【Handle subsequent exceptions】复选框,以后将处理当前进程触发的异常,也就是说,当调试器 遇到【Debugger Options】对话框中指定的异常时将停止。

 

                   指定遇到断点时的行为


【Log message】框用于让用户指定一个消息。当遇到断点时,将记载这个消息。

【Eval expression】框用于让用户指定一个表达式。如果下面的【Log result】复选框被 选中的话,当遇到断点时,将计算这个表达式并记载计算结果。

【Enable group】框可以使一组断点有效。

【Disablegroup】框可以禁止一组断点。 如果一个断点被指定了多个行为,则当遇到断点时,将依次执行这些行为。

六、断点列表窗口

如果定义了很多断点,或者断点不在当前的编辑窗口中,可以通过断点列表窗口来查找断点并且在源代码中定位它。

使用【View】菜单中的【Debug  Windows】命令,再选择【Breakpoints】,Delphi 将 打开断点列表窗口,如图 断点列表 所示。


             断点列表

对于源代码断点来说,断点列表窗口将显示断点所在的源文件名称、行号、条件和经过次数。

对于机器指令断点来说,断点列表窗口将显示断点所在的源文件名称、行号加一个16进制的偏移量,这个偏移量就是该指令距离源代码行机器指令起始点的字节数。不过,有 时候,一条机器指令并不一定对应着一条源代码行,此时,就不显示行号。

对于数据断点,断点列表窗口将显示数据的名称或地址以及长度。

Delphi 的断点列表窗口还有两栏,分别用于显示断点的行为和所属的组名。 要在源代码中定位断点所在的行,或者在 CPU 窗口中定位断点所在的机器指令,可以在断点列表窗口中用鼠标右键单击某个断点,在弹出的菜单中选择【View Source】或【Edit Source】命令。如果选择【ViewSource】命令,光标将定位于要找的断点上,但断点列表窗口仍然是当前活动的窗口,以便继续在断点列表窗口中查找其他断点。如果选择的是【EditSource】命令,代码编辑器将成为当前活动的窗口,这样就可以编辑源代码。

七、删除断点

删除断点并不是删除断点所在的行或指令,只是取消断点的定义,程序执行到这儿不会暂停。

如果仅仅要删除一个断点,有下列几个操作方式。

(1)  在断点列表窗口中用鼠标右键单击断点,在弹出的菜单中选择【Delete】命令。

(2)  在断点列表窗口中选择一个断点,然后按 Delete 键或按 Ctrl+D 键。

(3)  在代码编辑器或 CPU 窗口中用鼠标右键单击断点,在弹出的菜单中选择【Debug】 命令,再选择【Toggle Breakpoint】。

(4)  在代码编辑器或 CPU 窗口中把光标移到断点上,按下 F5 键。 (5) 在代码编辑器或 CPU 窗口中用鼠标左键单击断点的最左端。如果要删除所有断点,可以在断点列表窗口中单击鼠标右键,在弹出的菜单中选择【DeleteAll】命令。

0 0
原创粉丝点击