Как я могу предоставить addr2line файл символов для использования с разделенным двоичным файлом в Ubuntu?

У меня есть приложение C++, работающее в Ubuntu. Я хотел бы удалить двоичный файл приложения из его символов, чтобы они не были частью двоичного файла, а использовать утилиту addr2line для получения информации о трассировке путем ссылки на файл символов вместо символов, являющихся частью двоичного файла., Это возможно?

Самое близкое, что я получил до сих пор, - это сгенерировал файл символов, используя:

strip MyBinary -o thesymbols.sym

А затем я попытался использовать этот файл с помощью утилиты addr2line, например так:

addr2line 0x779e81 -b thesymbols.sym

Но это приводит к жалобе:

addr2line: 'a.out': No such file

Тогда я попробовал:

addr2line 0x779e81 -e MyBinary -b thesymbols.sym

Но это приводит к жалобе:

addr2line: MyBinary: Invalid bfd target

Может кто-нибудь направить меня в правильном направлении? Что я делаю неправильно?

Заранее благодарю за любую помощь!

Редактировать:

Теперь я понимаю, что когда я думал, что создаю файл, который просто содержит информацию о символах со следующим:

strip MyBinary -o thesymbols.sym

что я на самом деле просто создавал бинарный бинарный файл под названием thesymbols.sym

При этом мой первоначальный вопрос все еще остается в силе. Есть идеи?

1 ответ

Вы можете использовать бинарный двоичный файл с addr2line с адресом, с которого вы запускаете бинарный бинарный файл. Адрес относительно начала секции.text одинаковый как в двоичном, так и в раздетом виде.

Другие вопросы по тегам