11.1 Введение в инструмент gcov-tool
gcov-tool — это автономный инструмент для обработки файлов профилей gcda компилятора GCC.
Текущая версия gcov-tool поддерживает следующие функции:
- объединение двух наборов профилей с весами.
- чтение одного набора профилей и переписывание содержимого профиля. Можно масштабировать или нормализовать значения счетчиков.
Примеры использования этого инструмента:
- Сбор профилей для разных наборов входных данных и объединение их с помощью этого инструмента. Можно указать вес для учета относительной важности каждого входного набора.
- Переписывание профиля после удаления подмножества файлов gcda, сохраняя при этом согласованность сводки и гистограммы.
- Также его можно использовать для отладки или работы с кодом библиотеки libgcov, так как инструмент использует большую часть кода, как runtime-библиотека.
Обратите внимание, что для операции объединения профиль, сгенерированный автономно, может содержать незначительные различия по сравнению с объединенным онлайн-профилем. Вот список типичных различий:
- Разница в гистограмме: Этот автономный инструмент пересчитывает гистограмму после объединения счетчиков. Полученная гистограмма, следовательно, точная. Онлайновое объединение не обладает этой возможностью — гистограмма объединяется из двух гистограмм, и результат является приближением.
- Разница в контрольной сумме сводки: Контрольная сумма сводки использует операцию CRC32. Значение зависит от порядка связанного списка объектов gcov-info. Этот порядок в gcov-tool отличается от порядка в онлайн-объединении. Ожидается, что контрольные суммы сводок будут отличаться. Это не имеет большого значения, поскольку компилятор нигде не использует эту контрольную сумму.
- Разница в значениях счетчиков профиля значений: Некоторые значения счетчиков для профиля значений зависят от времени выполнения, например, адреса кучи. Нормально наблюдать некоторую разницу в таких счетчиках.
Далее: Вызов инструмента gcov-tool, Вернуться к: Инструмент gcov-tool [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/Gcov-tool-Intro.html