我正在使用二进制文件和发生核心转储的Linux机器上的核心文件在gdb上调试核心转储。但是我得到的是没有特定线程号1可用的符号表信息。对于其余的线程,我是获取符号表。
(gdb) t 1
[Switching to thread 1 (Thread 0x7f799659f700 (LWP 12275))]#0 0x00007f799cead4b0 in __tls_get_addr () from /lib64/ld-linux-x86-64.so.2
(gdb) frame 0
#0 0x00007f799cead4b0 in __tls_get_addr () from /lib64/ld-linux-x86-64.so.2
(gdb) bt full
#0 0x00007f799cead4b0 in __tls_get_addr () from /lib64/ld-linux-x86-64.so.2
No symbol table info available.
#1 0x00007f799c3d5ddc in __cxa_get_globals () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#2 0x00007f799c3d6c56 in __cxa_rethrow () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#3 0x0000000000413f57 in ExceptionHandler::SingleTonHandler::Handler ()
at /fgw_dev/dev/source/BSG/include/bsg_exception.h:19
No locals.
#4 0x00007f799c3d6be6 in ?? () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#5 0x00007f799c3d6c13 in std::terminate() () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#6 0x00007f799c3d6c96 in __cxa_rethrow () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#7 0x0000000000413f57 in ExceptionHandler::SingleTonHandler::Handler ()
at /fgw_dev/dev/source/BSG/include/bsg_exception.h:19
No locals.
#8 0x00007f799c3d6be6 in ?? () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#9 0x00007f799c3d6c13 in std::terminate() () from /usr/lib64/libstdc++.so.6
No symbol table info available.
基于核心bt,看起来好像是运行时异常导致程序终止,因为自从没有参数调用throw之后就没有捕获到异常,因此程序被终止并转储了内核,但是我们不知道根导致此异常的原因。请让我知道如何调试此核心文件,因为它没有为此特定线程加载符号。
(gdb) bt
#0 0x00007f799cead4b0 in __tls_get_addr () from /lib64/ld-linux-x86-64.so.2
#1 0x00007f799c3d5ddc in __cxa_get_globals () from /usr/lib64/libstdc++.so.6
#2 0x00007f799c3d6c56 in __cxa_rethrow () from /usr/lib64/libstdc++.so.6
#3 0x0000000000413f57 in ExceptionHandler::SingleTonHandler::Handler ()
at /fgw_dev/dev/source/BSG/include/bsg_exception.h:19
#4 0x00007f799c3d6be6 in ?? () from /usr/lib64/libstdc++.so.6
#5 0x00007f799c3d6c13 in std::terminate() () from /usr/lib64/libstdc++.so.6
#6 0x00007f799c3d6c96 in __cxa_rethrow () from /usr/lib64/libstdc++.so.6
#7 0x0000000000413f57 in ExceptionHandler::SingleTonHandler::Handler ()
at /fgw_dev/dev/source/BSG/include/bsg_exception.h:19
#8 0x00007f799c3d6be6 in ?? () from /usr/lib64/libstdc++.so.6
#9 0x00007f799c3d6c13 in std::terminate() () from /usr/lib64/libstdc++.so.6
#10 0x00007f799c3d6c96 in __cxa_rethrow () from /usr/lib64/libstdc++.so.6
#11 0x0000000000413f57 in ExceptionHandler::SingleTonHandler::Handler ()
谢谢
答案 0 :(得分:0)
我没有符号表
“无符号表”是红色鲱鱼;与您的问题无关。
但是我们不知道导致此异常的根本原因
您是否显示了backtrace
命令的 entire 输出?
您好像在任意截断9或10级的输出,并且如果您允许,输出将一直持续下去。
如果以上猜测正确无误,则可能是堆栈溢出,因为SingleTonHandler::Handler
不断地重新进入自身。通过让backtrace走足够长的时间,您还应该能够找出原始异常。另外,backtrace -20
应该向您显示最外面(最旧)的20帧。