GCOV Version несоответствие - ожидается 700e получил 408R - PullRequest
0 голосов
/ 21 февраля 2020

На одном сервере с G CC 4.4.7 / GCOV 4.4.7 я могу успешно запустить тесты. Однако на другом сервере с G CC 4.8.5 / GCOV 4.8.5, выполнение тестов приводит к этой ошибке:

profiling:/path/to/foo.gcda:Version mismatch - expected 700e got 408R

Вот выходные данные версий:

$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)

$ gcov --version
gcov (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)

После поиска этой ошибки кажется, что она часто вызывается несовпадающими версиями между g cc и gcov, однако у меня те же версии.

Мы недавно обновили g cc на этом сервере с 4.4.7 до 4.8.5. Эта проблема, по-видимому, вызвана обновлением.

Следует отметить, что я тестирую расширение Python C, которое, я думаю, немного отличается от тестирования обычного C приложения.

Я делаю следующее:

export CFLAGS="--coverage"
python setup.py build_ext --inplace
python tests.py

На обеих серверах эта вторая команда создает файлы .gcno соответствующим образом.

На сервере с 4.4.7, третья Команда успешно создаст файлы .gcda. Но сервер с 4.8.5 выводит это сообщение об ошибке

1 Ответ

2 голосов
/ 22 февраля 2020

Контрольно-измерительные приборы, созданные в одной версии G CC, не полностью совместимы с инструментами других производителей, поэтому G CC их версии. Сообщение об ошибке, по-видимому, указывает на то, что вы выполняете анализ покрытия с одной версией цепочки инструментов на предмет артефактов и контрольно-измерительных приборов, которые были хотя бы частично построены с другой версией.

Чтобы решить эту проблему, вы должны убедиться, что все Инструментированные двоичные файлы, включая любые библиотеки, и любые другие связанные артефакты, связанные с покрытием, были созданы с помощью одной и той же версии набора инструментов. Совершенно чистая перестройка из источников тестируемых компонентов - включая любые инструментированные библиотеки, будь то часть одной сборки или нет - должна сработать. Однако, вероятно, нет необходимости перестраивать двоичные файлы, которые не были оснащены для тестирования покрытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...