1

FastMM と JCL デバッグ情報を併用して、アプリケーションのメモリ リークを追跡しています。ただし、Delphi でコンパイルされた dll であるプラグインがあります。dll とメイン アプリケーションの両方が共通のランタイム パッケージを使用します。ここで、アプリケーションをシャットダウンすると、メモリ リーク レポートがテキスト ファイルに生成されますが、これは問題ありませんが、メイン アプリケーションのスタック トレースのみが含まれています。プラグイン dll でメモリ リークが発生した場合、スタック トレースは LoadPlugins につながります。メインアプリで手続き!もちろん、プラグインには JCL デバッグ データが含まれています (.dll バイナリに挿入されます)。

問題はどこだ?それはランタイムパッケージの使用によるものですか? または、有効/無効にするのを忘れたスイッチ(定義)ですか?前もって感謝します

4

2 に答える 2

2

FastMM4Options.incでFullDebugModeオプションとMemoryManager共有オプション(ShareMM以降)を設定しましたか?デバッグ情報もコンパイルしましたか?

于 2009-12-01T23:29:22.360 に答える
0

FastMM の作者である Pierre が私の質問に答えてくれました。誰かが興味を持っている場合、解決策は、スタック トレースとオブジェクト タイプにアクセスできるようにするために、シャットダウン時にプラグインをアンロードしないことです。ただし、これによりシャットダウン時に大量のバグが発生したため(FastMMが2回ほどアンロードされたため)、最終的にFastMMを共有パッケージに移動する必要がありました...

于 2009-12-31T13:29:30.593 に答える