从 gcov/lcov 覆盖结果中排除某些功能
Posted
技术标签:
【中文标题】从 gcov/lcov 覆盖结果中排除某些功能【英文标题】:Excluding certain functions from gcov/lcov coverage results 【发布时间】:2011-03-10 22:52:44 【问题描述】:是否可以从 gcov 覆盖率分析中排除某些函数或代码行。我的代码包含某些用于调试的函数,并且没有作为我的测试套件的一部分来执行。此类功能会降低 gcov 报告的覆盖率。我想从结果中排除这些函数。如果不能通过 gcov,也许可以通过 lcov,但我无法弄清楚。感谢您的帮助。
【问题讨论】:
另见***.com/questions/3555083/… 【参考方案1】:我通过一个简单的 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"
【讨论】:
以上是关于从 gcov/lcov 覆盖结果中排除某些功能的主要内容,如果未能解决你的问题,请参考以下文章
使用 gcov/lcov/gcovr 在 Android APK 下获取代码覆盖率