Кто-нибудь написал скрипт, который превращает вывод покрытия gcov в формат предупреждения компилятора?

Большинство редакторов кода знают, как использовать в коде достаточно стандартный формат file_path, line_number, message_text и гиперссылки. Они знают как, потому что именно так они отображают предупреждения компилятора. Visual Studio делает это, и Source Insight легко настроить для этого. Если мне придется, я сам напишу сценарий, но, возможно, кто-то уже сделал это.

Ищите сценарий, который принимает вывод покрытия gcov для gcc и переводит его в этот формат.

1 ответ

Решение

Вы можете обработать вывод gcov с помощью простого скрипта awk:

/.*:.*:/ {
    split($2,tokens,":");
    LINE=tokens[1];
}

/#####:/ { print FILENAME ":" LINE ": warning: Line not executed"}

/branch/ {
    if ($4 == 0)
    print FILENAME ":" LINE ": warning: " $0;
}

Бежать с awk -f warn.awk main.c.gcovи он преобразует вывод в:

main.c.gcov:35: warning: branch 0 taken 0 (fallthrough)
main.c.gcov:37: warning: Line not executed

Другие вопросы по тегам