当前位置:首页>java>Delphi编程入门(123):程序调试全攻略之断点(上)

Delphi编程入门(123):程序调试全攻略之断点(上)

  • 2026-10-12 16:18:32
Delphi编程入门(123):程序调试全攻略之断点(上)

本篇主要内容如下:

  • 设置与修改断点

  • 断点图标说明

  • 如何设置各类断点

    • 设置源码断点(Source Breakpoint)

    • 设置地址断点(Address Breakpoint)

    • 设置数据断点(Data Breakpoint)

    • 设置模块加载断点(Module Load Breakpoint)

  • 断点持久化:跨会话保存

  • 修改断点属性

  • 创建断点组

  • 启用/禁用断点或断点组

  • 设置条件断点

  • 为特定线程设置断点

  • 为断点关联动作(Actions)

  • 自定义断点与执行点颜色

  • 其他设置断点的位置

设置与修改断点

断点(Breakpoint)是一种强大的调试工具,可在程序执行到指定位置或满足特定条件时暂停运行,便于检查程序状态、变量值或调用流程。

在 RAD Studio 中,可以在代码编辑器中设置源码断点和模块加载断点,无论是在调试开始前还是调试过程中均可操作。而数据断点和地址断点则必须在应用程序处于调试运行状态(例如按 F9 启动调试)后才能设置。

断点图标说明

在调试会话中,代码编辑器左侧边栏(gutter)中会出现一个蓝色圆点,表示该行代码可以设置断点。

💡 注意:在“调用堆栈”(Call Stack)窗口中也会显示类似图标,但其中的蓝色圆点仅表示该帧有调试信息,并不代表可以在此设置断点。

所有断点都会在 断点列表窗口(View > Debug Windows > Breakpoints)中集中显示。

还可以将断点图标从列表拖拽回代码编辑器,移动后的断点会保留原有设置。

以下是代码编辑器中常见的断点图标及其含义:

图标
说明
 有效断点(调试器未激活)
断点已启用且位置有效,当前未在调试中
 有效断点(调试器已激活)
断点已启用且有效,当前正在调试
无效断点
断点位置无效(如注释行、空行或非法声明处),即使启用也无法触发
已禁用断点(调试器未激活)
断点有效但被手动禁用
已禁用断点(调试器已激活)
有效但禁用,调试中不会触发
无效且禁用的断点
位置无效且被禁用

如何设置各类断点

设置源码断点(Source Breakpoint)

  • 快速方法:直接点击代码行左侧边栏即可添加/删除断点。
  • 详细设置:
    1、依次选择菜单栏中的 运行(Run)> 添加断点(Add Breakpoint)> 源代码断点(Source Breakpoint),即可打开“添加源代码断点”对话框。
2、在“添加源代码断点”对话框中,文件名会自动填入当前文件,而“命中次数(Pass count)”默认为 0(表示第一次执行到该行时即触发断点)。你也可以在“行号(Line number)”字段中手动输入希望设置断点的具体行号。
3、若希望仅在特定条件下暂停程序,可在“条件(Condition)”字段中输入一个布尔表达式。每次程序运行到该断点时,都会计算此表达式;只有当表达式结果为 True 时,程序才会真正暂停。
4、如需将此断点归入某个断点组,可在“组(Group)”下拉框中选择已有组名,或直接输入新组名。

    🛠️ 小提示:如果需要调整代码编辑器左侧边距(gutter)的宽度,可进入 工具(Tools)> 选项(Options)> 编辑器选项(Editor Options)> 显示(Display),然后修改“边距宽度(Gutter width)”设置。


    设置地址断点(Address Breakpoint)

    必须在调试运行状态下操作(如按 F9 启动后)。

    • 以调试模式运行程序:例如,按 F9、F8、F7 或 F4 键启动调试会话。
    • 输入内存地址(如 $00011111);
    • 可设置条件、命中次数(Pass count)、断点组等;
    • 也可在 CPU 视图 或 反汇编视图 的边栏直接点击设置。

    设置数据断点(Data Breakpoint)

    用于监控某块内存数据是否被修改,常用于追踪变量异常变化。

    • 启动调试后,选择 运行 > 添加断点 > 数据断点;
    • 输入要监控的内存地址;
    • 指定数据长度(1/2/4 字节等);
    • 可附加条件、命中次数、分组等。

    ⚠️ 注意:

    长度不应跨越偶数字节边界(避免覆盖意外地址);不要对栈上变量设数据断点——可能因频繁触发导致程序无法正常运行;


    设置模块加载断点(Module Load Breakpoint)

    用于在特定 DLL、BPL、dylib 等模块加载时暂停程序。

    1. 选择 运行 > 添加断点 > 模块加载断点;
    2. 输入模块名称(如 MyLib.dll),或点击 浏览 从磁盘选择;
      • 支持筛选平台类型:Windows(.dll/.bpl)、macOS(.dylib)等;
    3. 当程序运行中加载该模块时,调试器将自动暂停。

    💡 也可在 模块窗口(Modules Window) 中右键模块直接设置。

    最新文章

    随机文章