How to get a stack trace from FastMM
Asked Answered
K

4

20

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?

Kyser answered 15/7, 2009 at 9:50 Comment(0)
S
46

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

Studley answered 15/7, 2009 at 10:3 Comment(3)
FastMM_FullDebugMode.dll can also be stored in the Windows system directory.Trawl
on my 64 bit windows I had to copy it to: C:\Windows\SysWOW64Montevideo
I have done all of the above, but still not working for me. I use Delphi XE4 so symbol reference info is "reference info". Everything enabled in debugging.Descendant
G
8

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

Grisette answered 15/7, 2009 at 11:35 Comment(0)
P
6

In addition, Francois Gaillard presented on CodeRage II a session called Fighting Memory Leaks for Dummies and deals specifically with FastMM. It is listed under the CodeRage II replays at thursday, November 29, 2007, 9.45am - 10:45am.

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

Regards, Erwin

Pigeon answered 15/7, 2009 at 20:11 Comment(0)
T
4

You can also see this and this for more detailed description, than ulrichb's reply.

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

Teran answered 15/7, 2009 at 10:39 Comment(1)
"Use Debug DCUs" is optional and not directly related to FastMM's debugging capabilities of your OWN source code.Uuge

© 2022 - 2024 — McMap. All rights reserved.