LINUX.ORG.RU

Как собрать coverage программы, работающей на «голом железе»

 , , ,


1

1

Собственно сабж. Есть некоторое количество кода, работающее на «голом железе», которое покрыто энным количеством тестов (Или, что еще хуже, вообще на rtl модельке этого железа).

Если бы это было обычное приложение, то можно было бы призвать на помощь волшебные флаги gcc (-fprofile-arcs и -ftest-coverage) и далее привычными gcov/lcov/ и т.п.

При сборке получаем .gcno файлики, вместе с .o, а при запуске - .gcda, которые и обрабатываем вышеупомянутыми тулами. Соответственно в рантайме программулина читает .gcno, пишет .gcda. Но в случае с голым железом у приложения нет доступа к файловым дескрипторам. Вообще.

Есть ли какие-то более или менее общие решения, которые помогут решить данную проблему?

★★★★★

Последнее исправление: ncrmnt (всего исправлений: 2)
Ответ на: комментарий от intelfx

не только, вопрос еще как подсунуть в рантайме данные из .gcno. Пока единственная мысль, которая приходит в голову - забить на все gccшные фичи, дампить из модели все значения, которые принимает регистр PC, и на основе этого и disassembly listing'а генерировать файл для lcov. Но все же хочется узнать, есть ли для этого стандартное решение

ncrmnt ★★★★★
() автор топика
Ответ на: комментарий от intelfx

делает fopen() по имени файла, скорее всего. Надо лезть в кишки gcc, чего я пока еще не сделал.

ncrmnt ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Ну вот перехвати нужные вызовы и подсовывай рантайму то, что он хочет (предварительно запихнув это в нужную секцию набортного флеша).

intelfx ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.