当我运行gcov foo.cpp时,它不仅会为foo.cpp生成代码覆盖报告,还会为foo.cpp使用的所有STL头文件生成报告。
有没有办法防止这种情况发生?看起来它会忽略像<ctime>
这样的标准库头文件。
编辑
刚刚在gcc邮件列表上看到了这篇文章:
当我运行gcov foo.cpp时,它不仅会为foo.cpp生成代码覆盖报告,还会为foo.cpp使用的所有STL头文件生成报告。
有没有办法防止这种情况发生?看起来它会忽略像<ctime>
这样的标准库头文件。
编辑
刚刚在gcc邮件列表上看到了这篇文章:
-r --relative-only
仅输出相对路径名的源文件信息(在源前缀删减后)。绝对路径通常是系统头文件,其中内联函数的覆盖率通常不重要。
#include <header>
包含的内容,并跟踪仅使用 #include "Myheader"
包含的内容。这是摆脱 STL 覆盖率的最简单解决方案 ^^ - CoffeDevelopergcov -long-file-names
(或只需-l),它为每个包含在给定文件中的头文件创建一个唯一的.gcov输出文件。这些文件的名称类似于foo.cpp##bar.h.gcov
。您可以使用rm \*\\#\\#\*.gcov
轻松删除它们(请注意反斜杠!)。