Spec-Zone.ru › GCC 15

12.1 Введение в gcov-tool

gcov-tool — это автономный инструмент для обработки файлов профилей gcda из gcc.

Текущая версия gcov-tool поддерживает следующие функции:

  • объединение двух наборов профилей с заданными весами.
  • чтение потока профилей с соответствующими именами файлов и его объединение с набором профилей с заданными весами.
  • чтение одного набора профилей и перезапись содержимого профилей. Можно масштабировать или нормализовать значения счётчиков.

Примеры использования этого инструмента:

  • Сбор профилей для разных наборов входных данных и их объединение с помощью этого инструмента. Можно задать вес, учитывающий относительную важность каждого набора входных данных.
  • Сбор профилей в целевых системах без файловой системы (в автономных средах). Объединение собранных профилей с соответствующими профилями, имеющимися в хост-системе. Можно задать вес, учитывающий относительную важность каждого набора входных данных.
  • Перезапись профиля после удаления части файлов gcda с сохранением согласованности сводки и гистограммы.
  • Инструмент также можно использовать для отладки кода libgcov, поскольку в нём используется большая часть кода, общего с библиотекой времени выполнения.

Обратите внимание, что при операции объединения профиль, созданный автономно, может содержать несколько отличающиеся значения по сравнению с профилем, объединённым в режиме онлайн. Ниже перечислены типичные различия:

  • различие в гистограмме: этот автономный инструмент пересчитывает гистограмму после объединения счётчиков. Поэтому полученная гистограмма является точной. При объединении в режиме онлайн такой возможности нет: гистограммы объединяются, и результат является приближённым.
  • различие в контрольной сумме сводки: для вычисления контрольной суммы сводки используется операция CRC32. Значение зависит от порядка объектов gcov-info в связанном списке. В gcov-tool этот порядок отличается от порядка при объединении в режиме онлайн. Ожидается, что контрольные суммы сводки будут различаться. Это не имеет особого значения, поскольку компилятор нигде не использует эту контрольную сумму.
  • различие в значениях счётчиков профиля значений: некоторые значения счётчиков профиля значений зависят от времени выполнения, например адреса в куче. Для таких счётчиков нормально видеть некоторые различия.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Gcov_002dtool-Intro.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API