背景
我使用python工具gcovr
为我的一些c项目生成覆盖数据。我能够毫无问题地获得覆盖数据,但由于工具查找源文件的问题,我无法查看哪些代码行被覆盖。
检查gcovr
生成的XML数据后,我意识到该工具正在查找错误的目录以获取覆盖率信息。在这种情况下,我为gcovr
的文档指定了源文件的根目录。
# gcovr ... --object-directory=/some/path -r /some/path
但是,当我为源文件指定目录时,gcovr
进入无限循环。
问题
导致此无限循环的原因是什么,我需要做什么来指定源文件所在的目录?
如果需要任何额外信息来解决这个问题,我愿意尽我所能。
答案 0 :(得分:2)
gcovr 3.1中存在记录的错误,处理“-r”(或“--root =”)选项。该错误导致gcovr从“/”级别搜索gcda文件,这需要很长时间。修复是在第1828行用方括号括起参数“options.root”,即get_datafiles([options.root])。有关更多信息,请参阅https://github.com/gcovr/gcovr/pull/27。
为了让gcovr 3.1在目录树中的源高于对象(和gcno)目录时正确设置源链接,我必须将修复应用于问题27(root无限循环),42(修复gcov不正确的相对路径)和49(gcovr无法找到gcov 4.8.2的源文件)。这是我的源区域的视觉效果:
的src /富/ *。立方厘米
的src /富/ .OBJ /变体/ *。Ø
答案 1 :(得分:0)
此问题已在gcovr 3.2中解决