Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get a stack trace from FastMM

I've noticed in the following post that you can get a stack trace out of FastMM to show what appears to be where an object was allocated:

How to track down tricky memory leak with fastMM?

I can't find any information on how to enable this in Delphi 2009, though.

I have set ReportMemoryLeaksOnShutdown to true so I get the basic report, but how do I get the stack trace report?

like image 955
Jamie Avatar asked Jul 15 '09 09:07

Jamie


2 Answers

The internal Delphi version of FastMM doesn't support stack traces.

If you want to log the memory leak stack traces, you have to:

  • download the full version of the FastMM library

  • include it as the first unit in your project:

    program YourProject;
    
    uses
      FastMM4, // <--
      SysUtils,
      Forms,
      ...
    
  • enable the FullDebugMode option in FastMM4Options.inc

  • set Map file to Detailed in the linking project options (the FastMM_FullDebugMode.dll processes the .map file)

  • add the FastMM_FullDebugMode.dll in your binary (or Windows System32) directory

like image 117
ulrichb Avatar answered Nov 16 '22 10:11

ulrichb


You may also want to check out Jeremy North's FastMM4 Option setting program. It's just a bit easier than editing the inc FastMM4Options.inc file directly. Here's the link:

FastMM4 Options Interface Blog Post

like image 31
MarkF Avatar answered Nov 16 '22 10:11

MarkF