我是一个产品的升级工程师,使用C#和Delphi 2006代码。
在大多数情况下,C#问题是用WinDbg调试的,Delphi 2006问题是用EurekaLog调试的。
但是当问题是Delphi内存使用时,EurekaLog没有提供足够的信息来解决这个问题,我唯一能调试它的是一个完整的内存转储文件。
我无法(或不知道如何)在WinDbg中加载符号文件,因为它是.map
文件而不是.pdb
文件。
所以我的问题是:
- 如何在WinDbg中从. map文件加载符号?(将
.map
转换为.pdb
或其他。) - 有没有工具可以分析Delphi应用程序的转储文件?
3条答案
按热度按时间ipakzgxi1#
要从Map转换为Dbg符号:
您应该获得一个YourApp.dbg文件以与Microsoft工具一起使用....
pkbketx92#
除了tds 2 pdb(参见我对map 2dbg的评论),您还可以在 Delphi 程序上使用我的小型转储查看器:
https://github.com/andremussche/asmprofiler/blob/master/Source/MiniDumpReader/ViewMinidump.exe.
https://github.com/andremussche/asmprofiler/blob/master/Releases/ViewMinidump.exe
这样就不需要转换为.dbg或.pdb,而是直接读取各种 Delphi 调试文件(.map、.tds/.td32和j.dbg)。
uxhixvfz3#
最新版本的cv2pdb工具可以将map 2dbg制作的DBG转换为PDB文件。
因此,如果您以前创建过这样的DBG:map 2dbg应用程序. exe
之后只需添加以下命令:cv 2 pdb-应用程序执行文件
-s.参数是用点分隔方法名和类名所必需的。
当前源代码上为Win32构建的cv 2 pdb可以从here下载。