如何说服gdb显示未处理异常的类型。我有一个核心转储及其相关的二进制文件和gdb中的堆栈跟踪向我显示它是一个catch all all handler,如下所示:
try { ... }
catch (exception &x) { ... }
catch (...)
{
-> here <-
}
堆栈跟踪的最后一部分是:
来自/lib64/libc.so.6的raise()中的0 0x00000034dc432925
来自/lib64/libc.so.6的abort()中的1 0x00000034dc434105
来自/lib64/libpthread.so.0的unwind_cleanup()中的2 0x00000034dc80dec1
4 ...我的捕获(...)处理程序
5 ...其余的调用堆栈导致此...
所以我升级到了catch(...)中的堆栈点,但现在我不知道试图弄清楚异常类型是什么。任何gdb提示都要揭示它? 饭后注意它的芥末(我的意思是我不能再次运行它并等待同样的问题再次发生,因为它很少而且很远)所以不能再抓住gxx_personality_v0获取访问权限了鉴于我的情况如上所述,除非有人知道如何达到这一点,否则它的变量与异常有关。