11.1 Введение в инструмент gcov-tool
gcov-tool — это автономный инструмент для обработки файлов профилей gcda компилятора gcc.
Текущая версия gcov-tool поддерживает следующие функции:
- объединение двух наборов профилей с весами.
- чтение одного набора профилей и переписывание содержимого профиля. Можно масштабировать или нормализовать значения счетчиков.
Примеры использования этого инструмента:
- Сбор профилей для различных наборов входных данных и объединение их с помощью этого инструмента. Можно указать вес, чтобы учесть относительную важность каждого входного значения.
- Перезапись профиля после удаления подмножества файлов gcda, сохраняя при этом согласованность сводки и гистограммы.
- Также его можно использовать для отладки или работы с кодом libgcov, так как инструмент использует большую часть кода библиотеки времени выполнения.
Обратите внимание, что для операции объединения этот офлайн-профиль может содержать незначительные различия по сравнению с онлайн-объединённым профилем. Вот список типичных отличий:
- Разница в гистограмме: Этот автономный инструмент пересчитывает гистограмму после объединения счетчиков. Полученная гистограмма, следовательно, точная. Онлайн-объединение не имеет такой возможности — гистограмма объединяется из двух гистограмм, и результат является приближением.
- Разница в контрольной сумме сводки: Контрольная сумма сводки использует операцию 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-8.5.0/gcc/Gcov-tool-Intro.html