Как я могу сказать, была ли библиотека скомпилирована с-g?

У меня есть некоторые скомпилированные библиотеки по x86 Linux, и я хочу быстро определить, были ли они скомпилированы с отладочной информацией.

94
задан Vadim Kotov 9 November 2017 в 10:57
поделиться

3 ответа

Если Вы работаете под Linux, используйте objdump --debugging . Для каждого объектного файла в библиотеке должна быть запись. Для объектных файлов без отладочных символов вы увидите что-то вроде:

objdump --debugging libvoidincr.a
In archive libvoidincr.a:

voidincr.o:     file format elf64-x86-64

Если есть отладочные символы, то вывод будет намного более подробный.

76
ответ дан 24 November 2019 в 06:02
поделиться

nm -a выведет все символы из библиотеки, включая отладочные.

Таким образом, вы можете сравнить результаты работы nm и nm -a - если они отличаются, то ваша библиотека содержит некоторые отладочные символы.

25
ответ дан 24 November 2019 в 06:02
поделиться

Для этого можно использовать objdump .

РЕДАКТИРОВАТЬ: Из справочной страницы:

-W
--dwarf
Displays  the  contents of the DWARF debug sections in the file, if
any are present.
11
ответ дан 24 November 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: