Если вы провели тщательное и ручное тестирование продукта или приложения и потратили на него много усилий. Если ваша цель - получить отчет о покрытии кода, используя lcov и gcov, но по ошибке удалили файлы gcno. Вы можете восстановить файлы gcno, перекомпилировав код, но он будет сгенерирован с новой отметкой времени, и gcov сообщит об ошибке, в которой говорится «несоответствие штампа с файлом графика», и отчет о покрытии кода не будет сгенерирован. Это приведет к потере всех ваших усилий по тестированию.
Существует ярлык для генерации отчета о покрытии кода. Это просто обходной путь, и на него нельзя полагаться все время. Рекомендуется сохранять файлы * .gcno до завершения тестирования.
Запишите вашу версию gcc (gcc -v) и загрузите ее исходный код с одного из зеркал.
Например - ftp: //gd.tuwien.ac.at/gnu/sourceware/gcc/releases/gcc-4.4.6/gcc-4.4.6.tar.bz2
После извлечения загруженного файла gcc структура папок будет выглядеть следующим образом
GCC-4.4.6
GCC-4.4.6 / НКУ
Если вы напрямую зайдете в gcc-4.4.6 / gcc и попытаетесь сделать ./configure и скомпилировать (сделать) оттуда, тогда вы столкнетесь с проблемой ниже
build / genmodes -h> tmp-modes.h
/ bin / sh: build / genmodes: такого файла или каталога нет
Решением является do ./configure и make из gcc-4.4.6, и не будет отображаться никаких ошибок, связанных с genmodes. Это скомпилирует все модули, включая gcc. Возможно, вам придется установить модули mpfr и gmp, которые необходимы gcc, если обнаружена какая-либо ошибка ./configure
goto gcc-4.4.6 / gcc / gcov.c и прокомментируйте строки ниже, а затем перекомпилируйте с указанной выше командой
/* if (tag != bbg_stamp)
{
fnotice (stderr, "%s:stamp mismatch with graph file\n", da_file_name);
goto cleanup;
}*/
Пример пути нового двоичного файла gcov после компиляции: gcc-4.4.6 / host-x86_64-unknown-linux-gnu / gcc / gcov
Поместите этот двоичный файл в / usr / bin и сгенерируйте отчет о покрытии кода командой, как показано в примере ниже
lcov --capture --directory ./ - output-file cover.info; genhtml cover.info - выходной-каталог / var / www / html / покрытие
Теперь вы не должны получать ошибку «несоответствие штампа с графическим файлом», и вы получите отчет о покрытии кода правильно