0
votes

everyone.

I'm trying to fix a problem in ceph using its core file and gdb. According to the following output, gdb should had successfully loaded debug symbols from ceph-debuginfo:

Reading symbols from /usr/bin/ceph-osd...Reading symbols from /usr/lib/debug/usr/bin/ceph-osd.debug...done.

However, it still couldn't find the symbol table when I used "bt" to trace the stack:

#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.

Why is this happening?

PS: when gdb started running, it prompted the following warning:

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

Could this be the cause of gdb not finding the symbol table?

1
Are you compiling with -g or similar ? - Paul R
No, I didn't compile the executable with -g, but I built its debug info, and this debug info is loaded when gdb starts running as is presented in the question. - Rainman1985
so how do you exactly build this debug info? - woockashek
There is no other way I know than building sources with -g, -ggdb etc. - woockashek
I built it with -g - Rainman1985

1 Answers

1
votes

This could be the symbols from shared libraries.

Launch:

 ldd your_binary

and see what shared objects it is using. Then download debug symbols for this so's.