代码之家  ›  专栏  ›  技术社区  ›  Jamie

如何从fastmm获取堆栈跟踪

  •  17
  • Jamie  · 技术社区  · 15 年前

    我在下面的文章中注意到,您可以从fastmm中获取堆栈跟踪,以显示分配对象的位置:

    How to track down tricky memory leak with fastMM?

    不过,我在Delphi2009中找不到有关如何启用此功能的任何信息。

    我已经定好了 ReportMemoryLeaksOnShutdown 如果为真,那么我将得到基本报告,但是如何获得堆栈跟踪报告呢?

    4 回复  |  直到 8 年前
        1
  •  40
  •   Remy Lebeau    8 年前

    fastmm的内部delphi版本不支持堆栈跟踪。

    如果要记录内存泄漏堆栈跟踪,必须:

    • 下载的完整版本 FastMM library

    • 将其作为 第一单元 在您的项目中:

      program YourProject;
      
      uses
        FastMM4, // <--
        SysUtils,
        Forms,
        ...
      
    • 启用 FullDebugMode 选择权 FastMM4Options.inc

    • 设置 地图文件 详细的 在链接项目选项中 FastMM_FullDebugMode.dll 处理 .map 文件)

    • 添加 fastmm_fulldebugmode.dll 在二进制文件(或Windows)中 System32 目录

        2
  •  6
  •   MarkF    15 年前

    您还可以查看Jeremy North的FastMM4选项设置程序。这比直接编辑inc fastmm4options.inc文件简单一点。链接如下:

    FastMM4 Options Interface Blog Post

        3
  •  5
  •   Erwin    15 年前

    此外,弗朗索瓦盖拉德在coderageII上提出了一个名为“为假人对抗内存泄漏”的会议,并专门处理fastmm。在2007年11月29日星期四上午9:45-10:45,它被列在coderage II重播下。

    http://edn.embarcadero.com/article/37498

    当做, 欧文

        4
  •  3
  •   Alex    11 年前

    你也可以看到 this this 比乌尔里希布的回复更详细的描述。

    don't forget to enable "Use Debug DCUs" option ;)