2017-06-12 16 views
-1

C++で次のコードを回復するには、適切な方法がありますか?glibcから正常に終了しました - malloc():メモリの破損

\*** glibc detected *** glibc detected - malloc(): memory corruption **\* 

は私が/ catchtryが動作しません、それはどちらか動作しますsignalハンドラを使用してのように見えるしていませんことを知っています。

+3

壊れたコードを見つけて修正するのが最善の方法だと思います。 – NathanOliver

+2

あなたはSIGSEGV(シグナルn°11)を捕まえようとしましたか?あなたが「優雅に出て行きたい」という特別な理由はありますか?この種のエラーはほとんど処理されません。ほとんどの場合、これらの種類のエラーをデバッグして(そして、遭遇したときにプログラムがクラッシュする)必要があります。 – nefas

+1

メモリが壊れてしまったら、正常に回復するには遅すぎるかもしれません。たとえシグナルを捕まえて例外を処理したり、シグナルを処理したりすることができたとしても、アプリケーションの状態がまったく問題ないか、使用可能であるという保証はありません。 – Rook

答えて

0

キャッチSIGSEGVは、アプリケーションの突然の終了を防ぎます。そこからメッセージを印刷して正常に終了できます。

関連する問題