Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Неиспользуемые метки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Sergei Frolov
Есть большой исходник на ассемблере. Там имеется куча подпрограмм, и не все они используются в программе.
Есть ли способы узнать, какие метки не использованы напрямую при компиляции? Есть ли какие-нибудь программы по этому поводу, утилиты и пр.?
CD_Eater
Несложно написать самому.
add
Цитата
Есть ли способы узнать, какие метки не использованы напрямую при компиляции

кометировать по одной (закоментировать "//") метке, и компилировать и т. д. ошибка есть, значит используется.. нет не используется...
Sergei Frolov
Было бы несложно, я бы сам и написал.
Но меня интересует, есть ли способы узнать, какие метки не использованы напрямую при компиляции? Есть ли какие-нибудь программы по этому поводу, утилиты и пр.?
SasaVitebsk
Метки место не занимают. Используемые или не используемые. А если на метку нету ссылки, то это ещё совсем не значит, что данный код не используется. Так что придётся делать анализ программный и потом внимательно просматривать выявленные случаи.
Sergei Frolov
Цитата(add @ May 23 2007, 11:06) *
кометировать по одной (закоментировать "//") метке, и компилировать и т. д. ошибка есть, значит используется.. нет не используется...


Спасибо. Но это долго, когда количество подпрограмм за сотню.
Мне хочется видеть сразу списком.
KRS
Цитата(Sergei Frolov @ May 23 2007, 11:52) *
Есть большой исходник на ассемблере. Там имеется куча подпрограмм, и не все они используются в программе.
Есть ли способы узнать, какие метки не использованы напрямую при компиляции? Есть ли какие-нибудь программы по этому поводу, утилиты и пр.?


Объявить каждую подпрограмму как PUBLIC и разделить по модулям
потом в map файле посмотреть какие модули используются
для IAR директивы MODULE ENDMOD
Sergei Frolov
Цитата(SasaVitebsk @ May 23 2007, 11:09) *
Метки место не занимают. Используемые или не используемые. А если на метку нету ссылки, то это ещё совсем не значит, что данный код не используется. Так что придётся делать анализ программный и потом внимательно просматривать выявленные случаи.


Это всё понятно. Это частный случай. Для начала мне нужно убрать неиспользуемые метки.
KRS
Скомпилировать!
Потом загрузить в IDA и посмотреть wink.gif
Sergei Frolov
А серьезно?
Палыч
Можно, наверное, воспользоваться каким-нибудь редактором, в котором реализован поиск. Загружаете Ваш исходник в редактор, и пытаетесь найти имя первой программы-кандидата на вычеркивание. Если нашли только один раз (нет вызова), этим же редактором можно поправить исходник - выкинуть подпрограмму. Такая процедура будет длинной - необходимо будет пройти в несколько проходов: программа, вызов которой обнаружился в выброшенной программе, может уже и не использоваться!
Sergei Frolov
Цитата(Палыч @ May 23 2007, 11:36) *
Можно, наверное, воспользоваться каким-нибудь редактором, в котором реализован поиск. Загружаете Ваш исходник в редактор, и пытаетесь найти имя первой программы-кандидата на вычеркивание. ...


Комментировать метки и перекомпилировать быстрее, чтобы компилятор ругался или нет. Но мне хочется получить сразу список.
KRS
Цитата(Sergei Frolov @ May 23 2007, 12:24) *
А серьезно?

Так серьезно! IDA прекрасно покажет какие части программы используются!
defunct
Цитата
Есть большой исходник на ассемблере.

Большой это сколько строк?
Sergei Frolov
Цитата(defunct @ May 23 2007, 17:52) *
Большой это сколько строк?


Около 40000-50000 по листингу.
KRS
И все в одном файле?
Sergei Frolov
Цитата(KRS @ May 24 2007, 10:12) *
И все в одном файле?


Конечно в одном, так удобнее с точки зрения навигации. (шутка)

Штук 20.
KRS
Цитата(Sergei Frolov @ May 24 2007, 11:22) *
Конечно в одном, так удобнее с точки зрения навигации. (шутка)

Штук 20.


Так тогда же каждый файл это отдельный модуль и если на него ссылок нет linker сам его должен выкинуть!
надо map файл посмотреть
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.