3

FastMM バージョン 4.99 を使用しようとしています ( の上部のコメントによるとFastMM4.pas)。スタック トレースを使用してフル デバッグ モードを使用する手順従い ましたが、IDE デバッガーで .exe を実行するとリークが見つかりました。例えば

FastMM リーク レポート ダイアログ

しかし、コマンド プロンプトから、または Windows エクスプローラーでダブルクリックして実行可能ファイルを実行しようとすると、リークは報告されません。UnicodeString リークは偽物かもしれませんが、TIniFile リークが本物であることは確かです。デバッガーを使用していないときに FastMM レポート/ログ リークを作成するにはどうすればよいですか?

更新: このプロジェクトは madExcept 3.0n も使用します: .dpr ファイルには、uses 句の最初の項目として FastMM4 があります。これら2つを共存させるために他に何か必要ですか?

4

1 に答える 1

12

が正しく構成されていませんFastMM4Options.inc。バージョン 4.97 で配布されたファイルからは、405 行目あたりです。

{Set this option to require the presence of the Delphi IDE to report memory
 leaks. This option has no effect if the option "EnableMemoryLeakReporting"
 is not also set.}
{.$define RequireIDEPresenceForLeakReporting}

.が最後の行 ( の前) にあることを確認し$define、プロジェクトを再構築します。

@wades は、私が言及したもののすぐ下に別の設定があることを発見しRequireDebuggerPresenceForLeakReportingました。これはデフォルトでオンになっています。左中括弧の直後にピリオドを追加して無効にします。

{Set this option to require the program to be run inside the IDE debugger to
 report memory leaks. This option has no effect if the option
 "EnableMemoryLeakReporting" is not also set.}
{$define RequireDebuggerPresenceForLeakReporting}

(@wadesのリクエストにより、この回答に追加します。)

于 2012-07-12T02:43:57.357 に答える