Мы поставляем совместно используемую библиотеку, которая используется клиентами для интеграции в их продукт.
Мы получили дамп ядра от клиента, посмотрев на info proc mappings
Я вижу загруженные модули и в thread apply all bt
Я вижу, что есть записи в трассировке стека, которые находятся внутри диапазона, в который загружена наша библиотека. Так что вполне возможно, что наша библиотека вызвала сбой. Но у нас нет доступа к исполняемому файлу, который использовал клиент.
Есть ли способ получить символы в этом дампе ядра, если у нас есть только общая библиотека, которую мы поставили, но не основной исполняемый файл?
Я попытался загрузить ядро и библиотеку, используя команду file, и наоборот, но в трассировке стека нет символов.
Большинство примеров в Интернете подразумевают, что у вас есть доступ к самому исполняемому файлу, чтобы иметь возможность получать значимые символы.
Могу ли я получить символы только для общей библиотеки, если я загружу ее в GDB?
Другие подробности: в производственной системе используется другой (намного более старый) GCC, чем тот, который установлен на моем ПК. И у нас есть свободная версия библиотеки, мы отправляем раздетую библиотеку.