大家。
我试图使用其核心文件和gdb来修复ceph中的问题。 根据以下输出,gdb应该已经成功加载了来自ceph-debuginfo的调试符号:
Reading symbols from /usr/bin/ceph-osd...Reading symbols from /usr/lib/debug/usr/bin/ceph-osd.debug...done.
然而,当我使用" bt"时,它仍然无法找到符号表。跟踪堆栈:
#0 0x000000393da0f65b in ?? ()
No symbol table info available.
#1 0x0000000000a51636 in install_standard_sighandlers () at global/signal_handler.cc:121
No locals.
#2 0x00007fc7a77f9ed0 in ?? ()
No symbol table info available.
#3 0x00007fc7a77f9e10 in ?? ()
No symbol table info available.
#4 0x00007fc7a77f9b90 in ?? ()
No symbol table info available.
#5 0x00007fc66d3142e0 in ?? ()
No symbol table info available.
#6 0x00007fc7fac64100 in ?? ()
No symbol table info available.
#7 0x0000003900000000 in ?? ()
No symbol table info available.
#8 0x0000000000a51155 in SignalHandler::unregister_handler (this=0x1105440, signum=<value optimized out>, handler=<value optimized out>) at global/signal_handler.cc:317
No locals.
#9 0x000000393eabcc33 in ?? ()
No symbol table info available.
#10 0x000000393eabcd2e in ?? ()
No symbol table info available.
为什么会这样?
PS:当gdb开始运行时,它会提示以下警告:
BFD: Warning: /home/xuxuehan/online_problems.2016-11-19.7-01/core-ceph-osd-6-32337-32337-19906-1479510049 is truncated: expected core file size >= 8372899840, found: 7439335424
这可能是gdb找不到符号表的原因吗?
答案 0 :(得分:1)
这可能是共享库中的符号。
启动:
ldd your_binary
并查看它正在使用的共享对象。 然后为此下载调试符号。