Невозможно исследовать файлы ядра, созданные программами, созданными GCC 4.6.x в Solaris - PullRequest
0 голосов
/ 27 декабря 2011

У нас возникают проблемы с отладкой C / C ++ файлов ядра программы (программа была создана GCC 4.6.1), даже с отладочной версией, хотя команда file показала отладку информация и символы доступны.

Символ в gdb вообще не будет удобочитаемым для человека, даже если он снабжен корректным исполняемым файлом отладки. Кто-нибудь может пролить свет на это?

Кстати, файл ядра не может быть проанализирован с помощью "mdb" или "adb". Каждый раз, когда adb запускается, генерируется новое ядро.

Отладка с помощью gdb приводит к таким ошибкам, как:

warning: Cannot initialize thread debugging library: Debugger service failed
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers

Также попытался собрать GDB из исходного кода, не повезло. Добавленный «LD_PRELOAD = / usr / lib / libpthread.so.1» перед запуском gdb также не работал (на самом деле программа была связана с -lpthread ).

1 Ответ

0 голосов
/ 27 декабря 2011

Чтобы получить используемый основной файл, убедитесь, что ваши исходные коды скомпилированы с использованием опции -g, прежде чем связывать их с исполняемым файлом.

Чтобы загрузить ядро, звоните:

gdb executable-which-the-core-was-created-from core-file
...