是否可以从gcov覆盖率分析中排除某些功能或代码行。我的代码包含用于调试的某些函数,并且不作为我的测试套件的一部分进行操作。这些功能降低了gcov报告的覆盖率。我想从结果中排除这些功能。如果通过gcov无法实现,也许可以通过lcov,但我无法弄明白。感谢您的帮助。
答案 0 :(得分:5)
我通过一个简单的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"
}