2012-07-09 2 views
3

Я работаю с проектом, который был передан мне, и некоторые из зданий и связующих понятий новы для меня. У меня есть makefile, несколько сборных и исходных файлов C, ELF-файл и двоичный файл. Когда я загружаю ELF-файл в свою цель, я могу только пропустить файлы C, а не файлы сборки.Исходные файлы, отсутствующие в таблице символов ELF - как их включить?

Когда я делаю readelf в файле ELF, я вижу, что в таблице символов отсутствуют файлы сборки (.S). Аналогично, мой отладчик (RealView Debugger 4.1) не перечисляет эти .S-файлы в дереве «источники из изображения». Я вижу, что некоторые символы из этих файлов включены (то есть имена меток) в мой вывод readelf, но не сами символы типа файла. Я просматриваю make-файл, чтобы попытаться определить, что может не включать их, но я не уверен, что я ищу. Может ли кто-нибудь указать мне в правильном направлении? Благодаря!

+1

Убедитесь, что вы передаете параметр -g в армаз в своем файле Makefile. –

+0

@PeteFordham, спасибо, я проверил, и я использую -g как с ассемблером, так и с компилятором C. – Rich

ответ

1

Вы упомянули об использовании отладчика RealView, поэтому я делаю обоснованное предположение, что у вас есть RVDS. Если да, попробуйте ли вы использовать эквивалент readelf, который поставляется с RVDS, от себя. У меня нет возможности подтвердить это сейчас, но я помню, что были небольшие различия между кодом сборки, сгенерированным компилятором ARM и gcc.

Смежные вопросы