You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 10.4中为动态加载的BPL文件激活断点?

Delphi 动态加载BPL断点失效解决思路
  • 确认宿主加载的BPL与编译输出的是同一文件
    很多情况下断点失效是因为LoadPackage加载的是其他目录下的旧版无调试信息的BPL,而非你刚编译完成的版本。可在LoadPackage执行前输出实际加载的BPL全路径,和BPL项目输出目录的文件路径做比对,确保二者完全一致。
  • 核对BPL项目的调试配置
    1. 编译器选项页:勾选「Debug information」「Local symbols」「Reference info/Definitions only」,完全关闭代码优化选项,优化会导致行号偏移、调试符号不匹配
    2. 链接器选项页:必须勾选「Include TD32 debug info」,禁止勾选「Strip debug info」
  • 确保两个项目编译配置完全匹配
    XXX.exe和BBB.bpl的编译目标(32位/64位)、编译版本(Debug/Release)、RTL选项、条件编译参数必须完全一致,任意一项不匹配都会导致调试符号无法正常关联。
  • 手动加载BPL调试符号
    启动调试后,打开View->Debug Windows->Modules模块窗口,找到加载的BBB.bpl条目,右键选择「Reload Symbols」手动重载符号。同时在Tools->Options->Debugger Options->Symbol Search Path中添加BPL项目的DCU输出目录,确保调试器可以找到对应的符号文件。
  • 检查调试权限
    如果XXX.exe需要管理员权限运行,必须右键选择「以管理员身份运行」启动Delphi IDE,否则调试器没有权限读取宿主进程的加载符号,导致BPL断点失效。
  • 清除编译缓存重试
    删除两个项目目录下所有临时文件(.dcu、.dsk、.obj、.map),清空输出目录的旧文件,先编译XXX.exe再编译BBB.bpl,之后重新启动调试。

内容的提问来源于stack exchange,提问作者Michael Haitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:54:05