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