GDB Linux - ошибка сегментации, таблица символов не найдена - PullRequest
0 голосов
/ 23 октября 2018

Я отлаживаю дамп ядра с помощью gdb, используя двоичный файл и файл ядра на компьютере с Linux, где произошел дамп ядра. Но я получаю Нет информации о таблице символов, доступной для определенного потока номер 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 Ответ

0 голосов
/ 24 октября 2018

Я получаю Таблицу без символов

"Таблицей без символов" является красная сельдь;это не имеет никакого отношения к вашей проблеме.

Но мы не знаем причину, которая привела к этому исключению

Вы показали весь вывод команды backtrace?

Похоже, что вы произвольно усекаете выход на 9 или 10 уровнях, и выход будет продолжаться "навсегда", если вы позволите.

Есливышеприведенное предположение верно, у вас переполнение стека, потому что ваш SingleTonHandler::Handler постоянно повторно входит в себя.Вы также должны быть в состоянии найти оригинальное исключение, позволяя обратному следу идти достаточно долго.В качестве альтернативы, backtrace -20 должен показать вам самые внешние (самые старые) 20 кадров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...