2017-09-16 16 views
1

で記憶を失っ:これはValgrindのであればValgrindのは、おそらくはような単純なプログラムで、72のおそらく失われたバイトが3つのブロックであることを私に語った私はValgrindのを実行してどのようなプログラムの簡単なプログラム

int main(void) 
{ 
    printf("Hello, World!\n"); 
    return 0; 
} 

あなたは知っていますかMac OSのsierraのバグ?

どうすればこのようなプログラムでメモリをリークできますか?

+3

「おそらく失われている」と表示されます。おそらくcrtでsomethng。それがいつもそこにあり、成長しないなら、それを心配しないでください。 –

答えて

2

プリロードされたライブラリのいずれか(たとえばLD_PRELOAD経由)またはリンクされたCランタイムの任意の部分がメモリリークを起こしている可能性があります。

CRTによって実行される2つのメモリ割り当ても決して解放されませんが、通常は1回限りであり、プロセスごとに1回しか発生しません。

Valgrindは、アプリケーションに含まれていない部分を確実に区別できません。メモリが割り当てられた場所からのスタックトレースを確認し、それが自分のドメインであるかどうかを判断するだけです。

+0

あなたのプログラムに属していないので、このようなエラーの抑制を生成することができます。実際、* valgrind *には既知の問題に対する多くの抑制があります。 –

+0

割り当てられていて解放されていないが参照がまだ残っているメモリは、リークではありません。プロセスの終了時に、OSの真空掃除機で一回のみの割り当てを掃除することは珍しいことではなく、必ずしも悪いことでもありません。 –

関連する問題