调试BPL包时无法显示崩溃行号的问题求助
解决Delphi BPL包调试无法显示行号的问题
排查与修复步骤
- 确认MAP文件类型
编译包时,必须在项目选项→Linking→Map file里选Detailed类型。Segments only或Publics only的MAP文件没有足够的行号信息,调试器根本没法解析具体行。 - 核对MAP与BPL的匹配性
检查MAP文件的生成时间和BPL完全一致,得是同一次编译出来的。要是BPL重编过但MAP没更新,符号不匹配肯定看不到行号。 - 添加符号搜索路径
除了给“加载进程”加源路径,还要去IDE的Tools→Options→Debugger→Symbol Path里把BPL和MAP所在目录加进去。调试器优先从这里找符号,不是只看BPL所在文件夹。 - 禁用符号加载跳过选项
打开Tools→Options→Debugger→General,别勾选Skip loading symbols for specified modules,要是列表里有T_LibR280.bpl也得删掉。 - 彻底清理后重新编译
旧文件残留很容易出问题:- 关IDE,手动删项目目录里所有DCU、BPL、MAP文件
- 重新开IDE,选Project→Build All,确保全是新编译的文件
- 确保IDE调试权限
因为是IDE专家包,运行在IDE进程里,调试时得用管理员身份启动IDE,不然权限不够,调试器读不了符号或源文件。 - 核对源文件一致性
当前加载的PAS代码必须和编译BPL时的完全一样。要是编译后改了代码,哪怕路径对,行号也匹配不上。
针对IDE专家包的额外技巧
- 别直接运行专家包项目,用Run→Attach to Process手动挂到bds.exe(IDE进程)上,这样调试器能正确关联符号。
- 检查项目选项→Packages→Runtime Packages,别勾选Build with runtime packages,专家包一般要禁用这个,避免依赖冲突。
内容的提问来源于stack exchange,提问作者Error - CPU Not Foud
相关产品推荐
相关产品推荐

