GDB在使用核心转储时提供无用的回溯

时间:2012-12-05 20:54:44

标签: c++ gdb g++

大约一周前,我开始遇到使用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

我真的无法想到任何改变造成这种情况的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

Why is my core file not overwritten?