当前位置:  开发笔记 > 编程语言 > 正文

GDB回溯消息"0x0000000000000000 in ??()"是什么意思?

如何解决《GDB回溯消息"0x0000000000000000in??()"是什么意思?》经验,为你挑选了2个好方法。

当它给出具有以下输出的回溯时它意味着什么?

#0  0x00000008009c991c in pthread_testcancel () from /lib/libpthread.so.2
#1  0x00000008009b8120 in sigaction () from /lib/libpthread.so.2
#2  0x00000008009c211a in pthread_mutexattr_init () from /lib/libpthread.so.2
#3  0x0000000000000000 in ?? ()

该程序已经与标准信号11一起崩溃,分段故障.我的应用程序是一个在FreeBSD 6.3上运行的多线程FastCGI C++程序,使用pthread作为线程库.

根据信息来源,它已使用-g编译,并且我的源的所有符号表都已加载.

很明显,我的实际代码都没有出现在跟踪中,而是错误似乎来自标准的pthread库.特别是什么?()????

编辑:最终在我的主代码中跟踪崩溃到标准的无效内存访问.不解释为什么堆栈跟踪已损坏,但这是另一天的问题:)



1> DGentry..:

gdb无法从pthread_mutexattr_init中提取正确的返回地址; 它的地址为0."??" 是在符号表中查找地址0的结果.它找不到符号名称,因此它打印默认的"??"

不幸的是,我不知道为什么它无法提取正确的返回地址.



2> davr..:

你做的事情导致线程库崩溃.由于线程库本身未使用调试符号(-g)进行编译,因此无法显示发生崩溃的源代码文件或行号.此外,由于它是线程,因此调用堆栈不会指向您的文件.不幸的是,这将是一个难以追踪的错误,你需要逐步完成代码并尝试缩小发生崩溃的时间.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有