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

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

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

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

本篇主要内容如下:

  • 设置与修改断点

  • 断点图标说明

  • 如何设置各类断点

    • 设置源码断点(Source Breakpoint)

    • 设置地址断点(Address Breakpoint)

    • 设置数据断点(Data Breakpoint)

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

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

  • 修改断点属性

  • 创建断点组

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

  • 设置条件断点

  • 为特定线程设置断点

  • 为断点关联动作(Actions)

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

  • 其他设置断点的位置

断点持久化:跨会话保存

默认情况下,关闭项目后断点会丢失。若希望断点在下次打开项目时依然存在,请启用自动保存桌面功能:

  1. 设置好所需断点和监视项;
  2. 进入 工具 > 选项 > 环境选项;
  3. 勾选 “自动保存项目桌面(Autosave Project desktop)”;
  4. 退出时,IDE 会将布局、断点、打开文件等保存为 .dsk 文件;
  5. 下次打开项目时自动恢复。

🗑️ 若不再需要这些设置,手动删除项目目录下的 .dsk 文件即可。


修改断点属性

  1. 打开 断点列表窗口(View > Debug Windows > Breakpoints);
  2. 右键目标断点,选择 “断点属性(Breakpoint Properties)”;
    • 或直接在代码编辑器边栏右键断点图标;
  3. 在属性对话框中可修改:
    • 条件表达式
    • 命中次数
    • 所属分组
    • 关联动作(如写入事件日志)
    • 线程过滤等;
  4. 点击 帮助(Help) 可查看各选项说明。

创建断点组

将多个断点归入同一组,便于统一启用/禁用或管理:

  1. 在断点属性对话框的 Group 字段输入新组名,或从下拉列表选择已有组;
  2. 点击 确定。

启用/禁用断点或断点组

  • 单个断点:
    • 在代码边栏 Ctrl + 单击 断点图标;
    • 或在断点列表中勾选/取消左侧复选框;
  • 全部断点:在断点列表空白处右键 → 启用全部 / 禁用全部;
  • 指定分组:右键空白处 → 启用组 / 禁用组。

⚙️ 快捷键提示:在代码行按 F5 也可切换断点启用状态。

📌 禁用断点不会删除它,仅暂时使其失效,方便后续重新启用。


设置条件断点

如果我们只关心特定场景(如变量值为负、标志位被置位等)时,条件断点非常有用:

  1. 添加任意类型断点;
  2. 在 Condition 字段输入表达式(如 i > 100 或 Status = tsError);
  3. 仅当表达式结果为 True(非零)时,程序才会暂停。

为特定线程设置断点

在多线程程序中,可限制断点仅在某个线程中触发:

  1. 添加断点时,在 Thread 字段输入线程编号或名称;
  2. 仅当该线程执行到此处时,断点才会生效。

为断点关联动作(Actions)

除了暂停程序,断点还可自动执行操作:

  1. 在断点属性中点击 Advanced(高级);
  2. 勾选所需动作,例如:
    • Evaluate expression:计算表达式;
    • Log result to Event Log:将结果写入事件日志;
  3. 点击 确定。

这样无需手动干预,即可自动记录关键信息。

自定义断点与执行点颜色

可修改代码编辑器中断点和当前执行行的高亮颜色:

  1. 进入 工具 > 选项 > 编辑器选项 > 颜色;
  2. 切换到对应语言标签(如 Delphi);
  3. 在示例代码区滚动至显示断点/执行点的位置;
  4. 点击目标行,在下方设置前景色与背景色;
  5. 点击 确定 保存。

其他设置断点的位置

除代码编辑器外,还可以在以下窗口中设置断点:

  • 断点列表窗口(Breakpoint List)
  • CPU 窗口 / 反汇编视图(Disassembly)
  • 调用堆栈窗口(Call Stack)
  • 模块窗口(Modules)

通过灵活运用这些断点功能,您可以大幅提升调试效率,快速定位复杂问题。善用条件、分组、动作等高级特性,让调试从“被动排查”变为“主动监控”。

最新文章

随机文章