2

これは機能である必要があるように感じますが、私の Google-Fu には失敗しました。これが以前に質問/回答されている場合は、前もってお詫び申し上げます。明らかなようですが、何も見つかりませんでした。

割り当てを意図的にリークしているとマークする手段はありますか? コンテキストは、プログラムの初期化中に一度動的に割り当てられ、プログラムの存続期間全体で使用されるデータ構造です。プログラムが終了する直前に、割り当てられたすべてのオブジェクトを解放する本当の理由はありません (家全体に向けて鉄球が飛んでいるのに、なぜ部屋を掃除する必要があるのでしょうか?)。

抑制ファイルを作成できることは承知していますが、それは手動で切断されているように感じます。この割り当てが意図的に決して解放されないような、何らかのマクロまたはその他のソース内の注釈 (たとえば、malloc(...)->に似たものmalloc_IGNORE_LEAK(...)) を使用することをお勧めします。valgrind は何らかの形でこれをサポートしていますか?

そうでない場合、意図的な「リーク」をマーク/追跡するための推奨されるソリューションは何ですか?

4

2 に答える 2

0

ハンドラーが解放mallocする「永続的な」割り当てを登録する独自のラッパーを作成できます。atexitただし、他のスレッドがそれらを使用している可能性がある場合、これはマルチスレッド プログラムでは安全ではない可能性があります。

于 2013-07-25T23:12:57.343 に答える