我遇到了一个coredump,使用gdb xxx core.1234,然后是“bt”,得到了那些消息:“0x6f636d6f in ??()”,其中函数名不可读。我想学习: 1.在什么情况下gdb bt显示“??”作为功能名称? 2.如何避免这些“??”并获得可读的函数名称?
答案 0 :(得分:2)
地址0x6f636d6f几乎肯定无效(即位于进程内存空间之外),可能是堆栈损坏的结果 - 它对应于ASCII字符ocmo
。
答案 1 :(得分:0)
1例:堆栈已损坏
2案例:代码编译优化(不确定)
3例:你启动gdb错误(例如gdb ./app --core core_name)。