如何从 Delphi DLL文件中解析转储文件?

3lxsmp7m  于 2022-12-23  发布在  其他
关注(0)|答案(3)|浏览(152)

我是一个产品的升级工程师,使用C#和Delphi 2006代码。
在大多数情况下,C#问题是用WinDbg调试的,Delphi 2006问题是用EurekaLog调试的。
但是当问题是Delphi内存使用时,EurekaLog没有提供足够的信息来解决这个问题,我唯一能调试它的是一个完整的内存转储文件。
我无法(或不知道如何)在WinDbg中加载符号文件,因为它是.map文件而不是.pdb文件。
所以我的问题是:

  • 如何在WinDbg中从. map文件加载符号?(将.map转换为.pdb或其他。)
  • 有没有工具可以分析Delphi应用程序的转储文件?
ipakzgxi

ipakzgxi1#

要从Map转换为Dbg符号:

  • http://code.google.com/p/map2dbg/获取Map2Dbg.exe
  • 将Map2dbg放在与YourApp.exe及其Map文件相同的文件夹中
  • 执行:map2dbg.exe您的应用程序
    您应该获得一个YourApp.dbg文件以与Microsoft工具一起使用....
pkbketx9

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)。

uxhixvfz

uxhixvfz3#

最新版本的cv2pdb工具可以将map 2dbg制作的DBG转换为PDB文件。
因此,如果您以前创建过这样的DBG:map 2dbg应用程序. exe
之后只需添加以下命令:cv 2 pdb-应用程序执行文件
-s.参数是用点分隔方法名和类名所必需的。
当前源代码上为Win32构建的cv 2 pdb可以从here下载。

相关问题