Есть ли инструмент для получения информации о конкретном символе в ELF .o или исполняемом файле? - PullRequest
3 голосов
/ 28 февраля 2012

Я ищу удобный способ (для использования в скрипте тестирования сборки) для запроса отдельных символов в объектном файле. Существует ли инструмент, который может ответить на вопрос (предпочтительно по состоянию выхода) «существует ли символ X в файле Y?» или мне просто нужно проанализировать вывод nm(1), например с grep и соответствующим регулярным выражением? Еще лучше было бы, если бы такой инструмент мог дать подробную информацию о символе (размер, тип, значение, ...).

Ответы [ 2 ]

5 голосов
/ 28 февраля 2012

Для исполняемой / разделяемой библиотеки, посмотрите readelf или Objdump , они могут вывести двоичные символы (искаженные или не исправленные), которые вы должны иметь возможность выполнять поиск.

Их исходный код легко получить, так что вы, вероятно, можете превратить их в более простые инструменты для выполнения поставленной задачи или напрямую импортировать их кодовую базу (не то, что вам действительно нужно, вы можете просто загрузить соответствующий двоичный файл с помощью dlopen и используйте dlsym для проверки наличия символа).

Objdump ориентирован на двоичные файлы, nm и readelf будет читать объектные файлы elf.

0 голосов
/ 28 февраля 2012

Вы можете использовать libbfd напрямую, но, просматривая API, неясно, как получить нужную информацию.

...