11
是否可以从gcov覆盖率分析中排除某些函数或代码行?我的代码包含某些用于调试的函数,并且不作为我的测试套件的一部分执行。这些功能降低了gcov报告的覆盖率。我想从结果中排除这些功能。如果通过gcov无法实现,也许可以通过lcov,但我无法弄清楚。感谢您的帮助。从gcov/lcov覆盖率结果中排除某些函数
是否可以从gcov覆盖率分析中排除某些函数或代码行?我的代码包含某些用于调试的函数,并且不作为我的测试套件的一部分执行。这些功能降低了gcov报告的覆盖率。我想从结果中排除这些功能。如果通过gcov无法实现,也许可以通过lcov,但我无法弄清楚。感谢您的帮助。从gcov/lcov覆盖率结果中排除某些函数
我通过运行lcov --capture的输出,通过简单的awk脚本过滤掉某些源文件。 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"
}
参见http://stackoverflow.com/questions/3555083/how-do-i-tell-gcov-to-ignore-un-hittable-lines-of-c-code – jchl 2012-01-05 16:59:11