0

大约一周前,我开始在使用 GDB 从核心转储中获取体面的回溯时遇到问题。如果我在 GDB 中加载程序并让它崩溃,我可以得到一个很好的回溯。

这是我从核心转储中得到的:

(gdb) bt
#0  0x00007fd10ad42425 in ?? ()
#1  0x00007fd10ad45b8b in ?? ()
#2  0x0000000000000004 in ?? ()
#3  0x0000000000000005 in ?? ()
#4  0x00007ffff770887e in ?? ()
#5  0x0000000000000009 in ?? ()
#6  0x00007fd10ae87ea7 in ?? ()
#7  0x0000000000000003 in ?? ()
#8  0x00007ffff77072ba in ?? ()
#9  0x0000000000000006 in ?? ()
#10 0x00007fd10ae87eab in ?? ()
#11 0x0000000000000002 in ?? ()
#12 0x00007ffff77072ce in ?? ()
#13 0x0000000000000002 in ?? ()
#14 0x00007fd10ae85b82 in ?? ()
#15 0x0000000000000001 in ?? ()
#16 0x00007fd10ae87ea7 in ?? ()
#17 0x0000000000000003 in ?? ()
#18 0x00007ffff77072b4 in ?? ()
#19 0x000000000000000c in ?? ()
#20 0x00007fd10ae87eab in ?? ()
#21 0x0000000000000002 in ?? ()
#22 0x0000000000000020 in ?? ()
#23 0x0000000000000000 in ?? ()
(gdb) 

无论是 SIGSEGV、SIGABRT(未处理的异常还是断言/验证),都会发生这种情况。

我正在使用以下编译器标志进行编译:

g++ -Wall -Wextra -g -ggdb -std=gnu++0x -rdynamic -pthread -O0

我真的想不出有什么改变导致了这种情况。有任何想法吗?

4

1 回答 1

2

事实证明,尽管有“核心转储”消息,但如果存在较旧的现有核心文件,它并没有被覆盖。根据这个,这显然是一个 ubuntu 错误:

为什么我的核心文件没有被覆盖?

于 2012-12-05T21:09:44.977 回答