【发布时间】:2018-10-23 03:57:43
【问题描述】:
我正在使用二进制文件和发生核心转储的 Linux 机器上的核心文件使用 gdb 调试核心转储。但是我得到 No symbol table info available for a specific thread number 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 ()
谢谢,
【问题讨论】:
-
我们不知道导致程序终止的这个运行时异常的根本原因。为什么它只为这个线程抛出符号 1. 信息线程的输出:* 1 线程 0x7f799659f700 (LWP 12275) 0x00007f799cead4b0 in __tls_get_addr () from /lib64/ld-linux-x86-64.so.2.Based based on the kernel logs segmentation fault occurred due to errno 6. kernel: BSG.exe [12275]: segfault at 7f799649fff8 ip 00007f799cead4b0 ld-2.12.so [7f799ce9c000+20000] 中的 sp 00007f79964a0000 错误 6