19

次の投稿で、FastMMからスタックトレースを取得して、オブジェクトが割り当てられた場所に表示されるものを表示できることに気付きました。

fastMMでトリッキーなメモリリークを追跡する方法は?

ただし、Delphi2009でこれを有効にする方法に関する情報は見つかりません。

trueに設定ReportMemoryLeaksOnShutdownしたので、基本レポートを取得しますが、スタックトレースレポートを取得するにはどうすればよいですか?

4

4 に答える 4

43

FastMMの内部Delphiバージョンはスタックトレースをサポートしていません。

メモリリークスタックトレースをログに記録する場合は、次のことを行う必要があります。

  • FastMMライブラリのフルバージョンをダウンロードする

  • プロジェクトの最初のユニットとしてそれを含めます。

    program YourProject;
    
    uses
      FastMM4, // <--
      SysUtils,
      Forms,
      ...
    
  • FullDebugModeでオプションを有効にするFastMM4Options.inc

  • リンクプロジェクトオプションで[マップファイル]を[詳細]に設定します(ファイルをFastMM_FullDebugMode.dll処理し.mapます)

  • FastMM_FullDebugMode.dllバイナリ(またはWindows System32)ディレクトリにを追加します

于 2009-07-15T10:03:29.460 に答える
7

JeremyNorthのFastMM4オプション設定プログラムも確認してください。incFastMM4Options.incファイルを直接編集するよりも少し簡単です。リンクは次のとおりです。

FastMM4オプションインターフェイスのブログ投稿

于 2009-07-15T11:35:03.927 に答える
5

さらに、Francois Gaillardは、CodeRage IIで、Fighting Memory Leaks for Dummiesと呼ばれるセッションを発表し、特にFastMMを扱っています。これは、2007年11月29日木曜日の午前9時45分から午前10時45分までのCodeRageIIリプレイの下にリストされています。

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

よろしく、アーウィン

于 2009-07-15T20:11:12.087 に答える
3

ulrichbの返信よりも詳細な説明については、これこれを参照することもできます。

そして、「デバッグDCUを使用する」オプションを有効にすることを忘れないでください;)

于 2009-07-15T10:39:45.863 に答える