Delphi XE ではReportMemoryLeaksOnShutDown
、アプリケーションを終了するときに常にリークを検出していました。ほとんどのプロジェクトはかなり小規模であり、通常、リークを見つけることはそれほど難しくありませんでした。
Lazarus にはそのようなオプションはありませんが、Heaptrcon と呼ばれるオプションを見つけました。詳細については、このページを参照してください: http://wiki.lazarus.freepascal.org/Profiling
Project Options > Linking で (-gh) フラグを設定しました。コードを投稿しますが、さまざまなクラスとユニットがたくさんあるため、これらのリークを修正するためにどこから始めればよいかわかりません。これは、私が取り組んだ他のどのプロジェクトよりもはるかに大きなプロジェクトです。
これはいくつかのリークのスクリーンショットです:
私のデバッグ スキルは実質的にゼロです。これまで、作成したすべてのオブジェクトまたはクラスを確認し、解放されているかどうかを確認しました。私は多くの TLists や Pointers/Objects などを扱っているため、どこからでもリークが発生している可能性があります。
どこから探し始めるかの手がかりやヒントはありますか? サイズが 16 の各ブロックのコール スタックを見ていますが、6 個あります。これは、6 個のオブジェクトが正しく破棄されていないことを意味しますか?
途方に暮れています。どこから始めればよいですか?
前もって感謝します。