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

Delphi 10.4.2调试器无法显示运行时值,求解决及验证方法

Delphi 10.4.2调试信息验证及变量显示异常解决方案

一、验证构建是否包含最新调试信息的可靠方法

  • 核对DCU文件时间戳:查看项目Debug输出目录(如.\Win32\Debug或.\Win64\Debug)下的DCU文件修改时间,确认与当前构建时间匹配。若DCU时间早于对应源码修改时间,说明该单元未被重新编译。
  • 检查构建日志:执行Project > Build Project后,打开View > Messages窗口切换到Build标签页,确认所有修改过的单元都显示[DCC] Compiling xxx.pas,而非Skipping xxx.pas (no changes)。若存在已修改但被跳过的单元,大概率是缓存问题。
  • 确认调试信息生成配置:进入Project > Options > Building > Delphi Compiler > Linking,确保Debug information设为Debug,勾选Local symbols,Symbol reference info选择Reference info或Full debug info;同时在Project > Options > Building > Delphi Compiler > Output中,不要勾选Use debug DCUs(调试VCL源码时除外),保证生成项目自身的调试DCU。
  • 用tdump工具验证符号信息:使用Delphi安装目录bin下的tdump工具,执行命令:tdump -symbols 你的项目.exe,若输出包含大量函数、变量符号,说明EXE已携带完整调试信息。

二、解决调试时变量无法显示的偶发问题

  • 关闭编译器优化:在Project > Options > Building > Delphi Compiler > Optimization中,取消勾选Enable optimization,并关闭Inline function expansion等所有优化选项——编译器优化可能导致调试器无法追踪变量地址。
  • 重置调试器配置:关闭Delphi,删除%APPDATA%\Embarcadero\BDS\21.0(10.4.2对应BDS版本为21.0)下的调试器相关配置文件,重启Delphi后重新构建调试。
  • 清理构建缓存:手动删除项目的Debug输出目录和项目名.dproj.local文件,执行Project > Build All进行全量构建,避免旧缓存干扰调试信息。
  • 排除代码内存问题:偶发的变量显示异常可能由程序内存溢出、栈损坏引发,断点触发时先检查程序内存状态,排查代码本身的内存操作问题。

内容的提问来源于stack exchange,提问作者user5005768-hd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:42:33