是否可以从 gcov 覆盖率分析中排除某些函数或代码行。我的代码包含某些用于调试的函数,并且没有作为我的测试套件的一部分来执行。此类功能会降低 gcov 报告的覆盖率。我想从结果中排除这些函数。如果不能通过 gcov,也许可以通过 lcov,但我无法弄清楚。感谢您的帮助。
问问题
4207 次
1 回答
6
我通过一个简单的 awk 脚本运行 lcov --capture 的输出来过滤掉某些源文件。lcov --capture 的输出格式非常简单,下面的 awk 脚本会过滤掉与 file_pattern 匹配的源文件。我认为可以调整脚本以使其过滤函数而不是文件名。
BEGIN {
record=""
}
/^SF/ {
if ( match ($0, "file_pattern" ) ) {
doprint = 0
} else {
doprint = 1
}
}
/^end_of_record$/ {
if ( doprint ) {
print record $0
}
record = ""
next
}
{
record=record $0 "\n"
}
于 2010-09-02T12:16:34.210 回答