【问题标题】:How to analyze a dump file from a Delphi DLL file?如何从 Delphi DLL 文件中分析转储文件?
【发布时间】:2009-08-06 09:58:53
【问题描述】:

我是使用 C# 和 Delphi 2006 代码的产品的升级工程师。

在大多数情况下,使用 WinDbg 调试 C# 问题,使用 EurekaLog 调试 Delphi 2006 问题。

但是当问题是 Delphi 内存使用时,EurekaLog 没有提供足够的信息来解决这个问题,我唯一可以调试它的是一个完整的内存转储文件。

我不能(或者我不知道如何)在 WinDbg 中加载符号文件,因为它是 .map 文件而不是 .pdb 文件。

所以我的问题是:

  • 如何在 WinDbg 中从 .map 文件加载符号? (将.map 转换为.pdb 或其他。)

  • 是否有工具可以分析 Delphi 应用程序的转储文件?

【问题讨论】:

    标签: delphi debugging memory-dump


    【解决方案1】:

    从 Map 转换为 Dbg 符号:
    - 从http://code.google.com/p/map2dbg/获取 Map2Dbg.exe
    - 将 Map2dbg 与 YourApp.exe 及其地图文件放在同一文件夹中
    - 执行:map2dbg.exe YourApp.exe

    您应该获得一个 YourApp.dbg 文件以与 Microsoft 工具一起使用...。

    【讨论】:

    【解决方案2】:

    除了 tds2pdb(参见我对 map2dbg 的评论)之外,您还可以在 Delphi 程序中使用我的 minidump 查看器: https://github.com/andremussche/asmprofiler/blob/master/Source/MiniDumpReader/ViewMinidump.exe.

    那么就不需要转换成.dbg或者.pdb,而是直接读取各种Delphi调试文件(.map、.tds/.td32、j.dbg)。

    【讨论】:

    • 您到 ViewMinidump.exe 的链接会产生 404。
    【解决方案3】:

    最新版cv2pdb工具可以将用map2dbg制作的DBG转换成PDB文件。

    所以,如果您以前制作过这样的 DBG: map2dbg App.exe

    之后添加这个命令: cv2pdb -s。应用程序.exe

    -s。参数是必要的,用一个点分隔方法名和类名。

    在当前源码上为Win32构建的cv2pdb可以从here下载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多