Вопрос

Можно ли использовать gcov для тестирования покрытия многопоточных приложений?

Я настроил несколько тривиальных тестов нашей базы кода, но было бы неплохо иметь представление о покрытии, которое мы достигаем. Если gcov не подходит, может кто-нибудь порекомендовать альтернативный инструмент (возможно, oprofile), в идеале с хорошей документацией по началу работы.

Это было полезно?

Решение

Мы, конечно, использовали gcov для получения информации о покрытии в нашем многопоточном приложении.

Вы хотите скомпилировать с помощью gcc 4.3, который может охватывать динамический код.

Вы компилируете с параметрами -fprofile-arcs -ftest-покрытие , и код сгенерирует файлы .gcda, которые затем gcov сможет обработать.

Мы делаем отдельную сборку нашего продукта и собираем информацию об этом, проводим модульные и регрессионные тесты.

Наконец, мы используем lcov для генерации страниц с результатами HTML.

Другие советы

Gcov отлично работает для многопоточных приложений. Архитектура измерительных приборов правильно сериализована, поэтому вы получите данные покрытия с хорошей точностью.

Я бы предложил использовать gcov в сочетании с lcov . Это даст вам отличные отчеты, от полного проекта до отдельных исходных файлов.

lcov также предоставляет HTML-версию вашего источника с хорошей цветовой кодировкой, чтобы вы могли быстро оценить свои ошибки покрытия.

Я не использовал gcov для работы с многопоточным покрытием. Однако в MacOS инструмент Shark от Apple обрабатывает несколько потоков. Это в первую очередь профилировщик, но он также может делать информацию о покрытии.

http://developer.apple.com/tools/sharkoptimize.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top