四、模块断点

要监视模块的第一次加载,可以使用【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】命令。

delphi初级教程之delphi断点调试二相关推荐

  1. delphi初级教程之delphi断点调试一

    所谓断点,就是在程序代码的某一行上设置一个标记,程序执行到这里将暂停,由调 试器接管对程序的控制.使用断点与使用[Runto Cursor]命令有些相似,都是执行到某 一行后暂停.不同的是,程序中可以 ...

  2. HUAWEI WeAutomate RPA初级教程之PPT自动化

  3. ExtJS初级教程之ExtJS Tree(一)

    ExtJS是一款基于Ajax的web客户端框架,有着更加和漂亮友好的界面,今天起我就开始学习ExtJS了,下面我把我学习的过程与大家分享. 我先学习我最近用到ExtJS Tree.下面我们开始写我们的 ...

  4. ExtJS初级教程之ExtJS Tree(三)

    前两次我介绍了静态树和根据数据库加载的数据生成的树,今天我就把ExtJS Tree这剩的一些主要的东西说一说,剩下的主要就是:树的事件处理.可编辑的树和可拖拽的树,最后再实现一下异步加载的树. 树的事 ...

  5. Solr基础教程之Schema.xml(二)

    在 Solr 中,使用一个或多个 Document 来构建索引.Document 包括一个或多个 Field.Field 包括名称.内容以及告诉 Solr 如何处理内容的元数据. 例如,Field 可 ...

  6. JSP入门初级教程之JSP概述

    JSP(IAVA SERVER PAGES)是由Sun 公司在java语言上开发出来的一种动态网页制作技术,其可使您可以将网页中的动态部分和静态的HTML相分离.您可以使用平常得心应手的工具并按照平常 ...

  7. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

    文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...

  8. 网管培训教程之DOS篇

    网管培训教程之DOS篇(一) 2007年08月12日 星期日 14:11 我们现在已经习惯了使用Windows系列的操作系统,似乎早已经脱离了DOS这套古老的操作系统.对于我们网管来说,我们在网吧的日 ...

  9. ILRuntime无法断点调试

    一.ILRuntime 调试步骤: 安装ILRuntime调试插件,并重新启动VS2015或VS2017.VS2019 确保dll和pdb都加载完毕再调用此接口. 运行Unity工程,并保证执行过ap ...

最新文章

  1. vs2013在使用ef6时,创建模型向导过程中,四种模型方式缺少2种
  2. 你为什么薪水那么低(二)之 生产力
  3. requests模块使用代理
  4. 教学目标四个维度_挖掘教材 预设目标 思本归真—— 记临安区初二英语教学研讨会...
  5. vue改变页面顶部浏览器标题栏图标
  6. html文字竖直书写,css 文字竖直居中的写法和图片垂直居中代码(图文)
  7. sytlengan2 代码解析
  8. RHEL 5 rpm包安装bind
  9. mysql10---索引优化
  10. DT大数据梦工厂 第72,73讲
  11. Linux acpi off报告ACPI bug处理方法
  12. 二分查找算法java实现
  13. instantclient php,Oracle 轻量即时客户端Instant Client安装配置
  14. 计算机网络(一):网络层次划分及各层的网络协议
  15. slic codec
  16. java中,参数后面跟三个点(...)的含义
  17. 如何调用百度地图API---定位、显示热力图、路径导航等(很方便很强大)
  18. 前端将0到1的小数值转换成百分比
  19. 图像处理:实现图片镜像(基于python)
  20. 高德地图去掉logo和版权

热门文章

  1. Spring 核心价值
  2. 微服务网关Gateway中Path路径过滤
  3. 分隔线演练-利用参数增加分隔线的灵活度
  4. Zuul:Cookie和动态路由
  5. java的自动装配是什么意思_java – 什么时候在Spring中使用自动装配
  6. Java平台扩展机制#3:SLF4J怪招
  7. 我们是python_我们生活在“Python时代”
  8. python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...
  9. Linux GDB调试
  10. Delphi的System.Str - 将数字格式化为字符串