1

背景
我正在使用 python 工具gcovr为我的一些 c 项目生成覆盖率数据。我能够毫无问题地获得覆盖率数据,但由于查找我的源文件的工具出现问题,我无法查看覆盖了哪些代码行。

在检查了生成的 XML 数据后,gcovr我意识到该工具正在查看错误的目录以获取覆盖信息。在这种情况下,我指定了源文件的根目录,如gcovr.

# gcovr ... --object-directory=/some/path -r /some/path  

但是,当我为源文件指定目录时,gcovr会进入无限循环。

问题
是什么导致了这个无限循环,我需要做什么来指定我的源文件所在的目录?

如果需要任何额外的信息来解决这个问题,我愿意提供我所能提供的。

4

2 回答 2

2

gcovr 3.1 中有一个记录在案的错误,其中处理“-r”(或“--root =”)选项。该bug导致gcovr从“/”级别搜索gcda文件,耗时较长。解决方法是在第 1828 行用方括号将参数“options.root”括起来,即 get_datafiles([options.root])。请参阅https://github.com/gcovr/gcovr/pull/27了解更多信息。

为了让 gcovr 3.1 在目录树中的源高于对象(和 gcno)目录时正确设置源链接,我必须将修复应用于问题 27(根无限循环)、42(修复 gcov 不正确相对路径)和 49(gcovr 找不到 gcov 4.8.2 的源文件)。这是我的源区域的视觉效果:

src/foo/*.cc

src/foo/.obj/variant/*.o

于 2014-06-27T19:44:33.163 回答
0

此问题已在 gcovr 3.2 中解决

于 2014-07-06T04:55:15.713 回答