ファイティング「*** glibcが検出されました***」

こんにちは、habrasociety!



今日出会った小さな問題についてお話したいと思います。

プログラムがクラッシュし、「*** glibc detected ***」で始まる行に多くのオーバーヘッド情報が付随することがあります。 実際、glibcには独自のメモリマネージャがあり、未割り当てのメモリを解放しようとすると、パニックに陥り、メモリマネージャの内部構造が崩壊したと考えられます。



もちろん、問題を解決する正しい方法は、プログラムを延期し、エラーを見つけ、開発者に報告することです。 しかし、結果が緊急に必要になることがあり、それを行う時間がありません。 この場合、glibcメモリマネージャーを別のモードに切り替えてみてください。生産性は低下しますが、このようなプログラマーのエラーに対する耐性は高まります。 次の方法で実行できます。



  MALLOC_CHECK_ = 0 /パス/へ/プログラム 




値を「0」にすると、そのようなエラーは完全に無視されます。「1」-エラーに関するメッセージをstderrに表示し、「2」-エラーが検出されたときにプログラムを終了します。

5.4.23より新しいLinux libcおよびGNU libc 2.xで実行されます。



All Articles