Как запустить gcov на тестовом приложении с ОС Nuttx на плате обнаружения STM?

Настройка: Набор инструментов: gcc-arm-none-eabi-5_2-2015q4-20151219 Цель: STM429i-дискотека

Я хочу запустить gcov и получить отчет в реальном времени, сгенерированный в цели, как показано ниже по ссылке: https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/

Во-первых, успешно скомпилировали мой код (POSIX-совместимая ОС NUTTX) с флагами -fprofile-arcs & -ftest-покрытие и сгенерировали файлы.gcno для моих файлов src.

во-вторых, успешно связаны с включенными флагами -fprofile-arcs и использованием файла libgcov.a (часть цепочки инструментов), и генерируется окончательный двоичный файл.

Теперь я не знаю, какие изменения необходимы в моем тестовом приложении для вызова gcov, генерации отчета и отчета о дампе.

Другая проблема заключается в том, что функции gcov имеют атрибут HIDDEN в libgcov.a, как показано ниже.
9: 00000000 4 FUNC GLOBAL HIDDEN 1 __gcov_flush
9: 00000000 4 FUNC GLOBAL HIDDEN 1 __gcov_init

поэтому я не мог ссылаться так, как мне нужно.

Любые входные данные для получения файла.gcda будут очень полезны.

1 ответ

Можете ли вы искать gcov_exit вместо? Это похоже на __gcov_flush, Как правило, это один из gcov_exit а также __gcov_flush это было бы там, и вы можете использовать любой.

В случае, если это не там или также скрыто, вы можете использовать этот подход, который я попробовал для одного из моих проектов. Я выбрал (и изменил по разным причинам) реализацию gcov_exit из исходного кода gcc (версии, совпадающей с моей цепочкой инструментов) (доступно по адресу https://github.com/reeteshranjan/libgcov-embedded) и подключил его к моему проекту. Со всем остальным (флаги компилятора и т. Д.) Я смог взломать gcov_exit и следуйте остальной части подхода в ссылке на блоге, которую вы упомянули.

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