EurekaLogでDelphiアプリケーションのメモリリークを検出する

■メモリリークを報告する「ReportMemoryLeaksOnShutdownプロパティ」

Delphiには、アプリケーション終了時にメモリリークを報告するReportMemoryLeaksOnShutdownプロパティがあります。

program Project1;

uses
  ExceptionLog,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  ReportMemoryLeaksOnShutdown := True; //<=追加

  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

参考:メモリリークの報告 « 開発言語の備忘録

ただ、ReportMemoryLeaksOnShutdownプロパティではメモリリークがあったことがわかるだけで、どこに原因があるのかまではわかりません。


メモリリークの報告ダイアログ

■メモリリークの発生場所までわかる「EurekaLog」

EurekaLogを使用すると、メモリリークの原因まで検出することができます。

EurekaLogでメモリリークを検出するには、設定画面の「Catch Memory Leaks」チェックボックスにチェックを入れます。

メモリリークのあるアプリケーションを終了すると、次のようなダイアログが表示されます。

「click here」のリンクをクリックすると、詳細なエラー情報を表示する画面が表示されます。
「Call Stack」タブを選択すると、メモリリークの発生場所がわかります。

メモリリークの発生場所をダブルクリックすると、IDEの該当行にフォーカスが移動します。

このようにEurekaLogを使うと問題の箇所がすぐにわかり、修正することができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください