2017-06-12 50 views
-1

有沒有一種優雅的方式可以從C++中恢復以下內容?從檢測到的glibc中優雅地退出 - malloc():內存損壞

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

我知道try/catch將無法​​正常工作,它似乎並不像使用signal搬運工會擦出火花。

+3

我認爲最好的方法是找到破損的代碼並修復它。 – NathanOliver

+2

您是否嘗試過捕獲SIGSEGV(信號n°11)?爲什麼要「優雅地退出」是否有特定的原因?這些錯誤應該很少被處理。大多數情況下,您應該在驗屍後調試這些錯誤(並在程序遇到時保持程序崩潰狀態)。 – nefas

+1

當你有內存損壞的時候,優雅地恢復可能爲時已晚。即使您能夠捕捉並排除異常或處理信號,也不能保證應用程序的狀態以任何方式理智或可用。 – Rook

回答

0

捕獲SIGSEGV將防止應用程序的突然終止。從那裏我可以打印消息並優雅地退出。