适用于多线程应用的GCOV

时间:2008-09-01 11:44:09

标签: c++ testing code-coverage

是否可以使用gcov进行多线程应用程序的覆盖测试?

我已经对我们的代码库进行了一些微不足道的测试,但是对我们正在实现的覆盖范围有所了解会很好。如果gcov不合适,任何人都可以推荐一个替代工具(可能的oprofile),理想情况下有一些关于入门的好文档。

3 个答案:

答案 0 :(得分:8)

我们当然使用gcov来获取有关多线程应用程序的覆盖信息。

您希望使用gcc 4.3进行编译,它可以覆盖动态代码。

使用-fprofile-arcs -ftest-coverage选项进行编译,代码将生成.gc文件,然后gcov可以处理这些文件。

我们对产品进行单独构建,并对其进行收集,运行单元测试和回归测试。

最后我们使用lcov生成HTML结果页面。

答案 1 :(得分:1)

Gcov适用于多线程应用程序。仪器架构已正确序列化,因此您将获得良好保真度的覆盖数据。

我建议将gcov与lcov结合使用。这将为您提供从完整项目到单个源文件的优秀报告。

lcov还为您提供了一个很好的彩色编码HTML版本的源代码,因此您可以快速评估您的覆盖率。

答案 2 :(得分:0)

我没有将gcov用于多线程覆盖工作。但是,在MacOS上,Apple的Shark工具处理多个线程。它主要是一个分析器,但也可以做覆盖信息。

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