GCOV для многопоточных приложений - PullRequest
6 голосов
/ 01 сентября 2008

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

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

Ответы [ 3 ]

8 голосов
/ 01 сентября 2008

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

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

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

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

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

1 голос
/ 16 июня 2009

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

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

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

0 голосов
/ 01 сентября 2008

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

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

...