2011-06-14 52 views
4

我有一个捕获未知异常的程序。代码如下所示:来自核心文件的C++异常信息

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

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

PS:我是在Linux上的CentOS 5.4

回答

1

除非你逝去的回溯信息除外(例如解释here),除非该异常被捕获,有没有方法让从那里异常的信息被抛出。

由于捕获所有(catch(...))块发现异常,因此无法获取该信息。

+0

明白了。谢谢。 – 2011-06-14 07:24:57

+0

不错! 6502分! http://en.wikipedia.org/wiki/6502 – Potatoswatter 2011-06-14 08:19:31

+0

@Patatoswatter有趣的历史:) – 2011-06-14 08:33:36

1

据我所知,你将无法得到至极例外,在这个帖子已经陷入一个catch(...)

看:

how to get message of catch-all exception

+0

伤心,但我想没有什么可做的。谢谢。 – 2011-06-14 07:26:54