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

我已经对我们的代码库进行了一些简单的测试,但如果能够了解我们正在实现的覆盖范围,那就太好了。如果 gcov 不合适,任何人都可以推荐一个替代工具(可能是 oprofile),最好有一些关于入门的良好文档。

有帮助吗?

解决方案

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

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

你用以下命令编译 -fprofile-arcs -ftest-coverage 选项,代码将生成 .gcda 文件,然后 gcov 可以处理该文件。

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

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

其他提示

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

我建议结合使用 gcov 左旋病毒. 。这将为您提供从整个项目到单个源文件的出色报告。

lcov 还为您提供了源代码的漂亮颜色编码的 HTML 版本,以便您可以快速评估您的覆盖率失误。

我还没有使用 gcov 进行多线程覆盖工作。然而,在 MacOS 上,Apple 的 Shark 工具可以处理多个线程。它主要是一个分析器,但也可以提供覆盖信息。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top