从检测到的glibc中优雅地退出 - malloc():内存损坏

问题描述:

有没有一种优雅的方式可以从C++中恢复以下内容?从检测到的glibc中优雅地退出 - malloc():内存损坏

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

我知道try/catch将无法​​正常工作,它似乎并不像使用signal搬运工会擦出火花。

+3

我认为最好的方法是找到破损的代码并修复它。 – NathanOliver

+2

您是否尝试过捕获SIGSEGV(信号n°11)?为什么要“优雅地退出”是否有特定的原因?这些错误应该很少被处理。大多数情况下,您应该在验尸后调试这些错误(并在程序遇到时保持程序崩溃状态)。 – nefas

+1

当你有内存损坏的时候,优雅地恢复可能为时已晚。即使您能够捕捉并排除异常或处理信号,也不能保证应用程序的状态以任何方式理智或可用。 – Rook

捕获SIGSEGV将防止应用程序的突然终止。从那里我可以打印消息并优雅地退出。