如果gdb frames / bt显示“??”会发生什么但没有可读的功能名称?

时间:2012-07-14 03:12:20

标签: c++ c gdb

我遇到了一个coredump,使用gdb xxx core.1234,然后是“bt”,得到了那些消息:“0x6f636d6f in ??()”,其中函数名不可读。我想学习: 1.在什么情况下gdb bt显示“??”作为功​​能名称? 2.如何避免这些“??”并获得可读的函数名称?

2 个答案:

答案 0 :(得分:2)

地址0x6f636d6f几乎肯定无效(即位于进程内存空间之外),可能是堆栈损坏的结果 - 它对应于ASCII字符ocmo

答案 1 :(得分:0)

1例:堆栈已损坏 2案例:代码编译优化(不确定) 3例:你启动gdb错误(例如gdb ./app --core core_name)。