2008-09-01 5 views
5

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

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

ответ

8

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

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

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

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

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

0

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

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

1

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

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

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

Смежные вопросы