本篇主要内容如下:
设置源码断点(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 键启动调试会话。
- 可设置条件、命中次数(Pass count)、断点组等;
- 也可在 CPU 视图 或 反汇编视图 的边栏直接点击设置。
设置数据断点(Data Breakpoint)
用于监控某块内存数据是否被修改,常用于追踪变量异常变化。
- 启动调试后,选择 运行 > 添加断点 > 数据断点;
⚠️ 注意:
长度不应跨越偶数字节边界(避免覆盖意外地址);不要对栈上变量设数据断点——可能因频繁触发导致程序无法正常运行;
设置模块加载断点(Module Load Breakpoint)
用于在特定 DLL、BPL、dylib 等模块加载时暂停程序。
- 输入模块名称(如
MyLib.dll),或点击 浏览 从磁盘选择; - 支持筛选平台类型:Windows(.dll/.bpl)、macOS(.dylib)等;
💡 也可在 模块窗口(Modules Window) 中右键模块直接设置。