Free Pascal にも同様の機能があります。プログラムの最後で、 を呼び出すDumpHeap
か、Lazarus プロジェクト設定で heaptrc オプションを有効にします。出力ファイルはメソッドで設定できますSetHeapTraceOutput
。両方の方法はheaptrc
、プロジェクトの最初のユニットでなければなりません (最初から割り当てを取得するため)。
詳細情報:
リークの視覚化 : Lazarus パッケージ「LeakView」は、ツリー ビューでヒープ トレース出力ファイルの内容を表示します。これはデフォルトのインストールに含まれており、IDE の再構築後に使用できます。(まだ私によってテストされていません)
// By default information is written to standard output,
// this function allows you to redirect the information to a file
SetHeapTraceOutput('heaptrace.log');
// normally the heap dump will be written automatically at the end,
// but can also be written on demand any time
DumpHeap;
出力は次のようになります。
C:\path\to\Demo.exe
Heap dump by heaptrc unit
244 memory blocks allocated : 8305/9080
241 memory blocks freed : 8237/9000
3 unfreed memory blocks : 68
True heap size : 458752
True free heap : 458288
Should be : 458480
Call trace for block $0010CE58 size 28
$0044ACCB TIDTHREADSAFE__CREATE, line 226 of C:/path/to/indy-10.5.8.tiburon/Lib/Core/IdThreadSafe.pas
$00444245 IDTHREAD_init, line 641 of C:/path/to/indy-10.5.8.tiburon/Lib/Core/IdThread.pas
$00409D74
$0040E1A1
...
(Free Pascal 2.6.0 でテスト済み)