核心文件中的C++异常信息

问题描述 投票:0回答:2

我有一个程序可以捕获未知异常。代码如下所示:

try {
    ...
} catch (...) {
    abort(); // generates core file
}

我有一个核心文件和可执行文件。有没有办法让我知道它捕获了什么异常以及它在代码中的哪个位置生成,而无需重新编译或在 gdb 中再次运行? 我正在考虑尝试使用 gdb 从核心文件中找出所有这些。有什么想法如何做到这一点吗?

PS:我使用的是Linux CentOS 5.4

c++ exception gdb coredump
2个回答
1
投票

除非您将回溯信息传递给异常(如此处所述)并且除非捕获该异常,否则无法从引发异常的位置获取信息。

由于 catch all (

catch(...)
) 块捕获了异常,因此您无法获取该信息。


1
投票

据我所知,您将无法获得已陷入 catch 的异常 (...)

看这个帖子:

如何获取catch-all异常的消息

© www.soinside.com 2019 - 2024. All rights reserved.