Spec-Zone.ru › GCC 8

10.5 Перемещение файлов данных для поддержки кросс-профилирования

Запуск программы приведет к генерации выходных данных профилирования. Для каждого исходного файла, скомпилированного с помощью -fprofile-arcs, соответствующий файл .gcda будет помещен в директорию файла объекта. Это подразумевает запуск программы на той же системе, на которой она была построена, или наличие той же абсолютной структуры каталогов на целевой системе. Программа попытается создать необходимую структуру каталогов, если она еще не существует.

Для поддержки кросс-профилирования программа, скомпилированная с помощью -fprofile-arcs, может перемещать файлы данных на основе двух переменных окружения:

  • GCOV_PREFIX содержит префикс, добавляемый к абсолютным путям в файлах объекта. Префикс может быть абсолютным или относительным. По умолчанию префикс отсутствует.
  • GCOV_PREFIX_STRIP указывает, сколько начальных имен каталогов следует удалить из жестко заданных абсолютных путей. Значение по умолчанию равно 0.

    Примечание: Если GCOV_PREFIX_STRIP задано, а GCOV_PREFIX не определено, то из жестко заданных абсолютных путей создается относительный путь.

Например, если файл объекта /user/build/foo.o был скомпилирован с помощью -fprofile-arcs, то при запуске на целевой системе конечный исполняемый файл попытается создать файл данных /user/build/foo.gcda. Это произойдет неудачно, если соответствующий каталог не существует и не может быть создан. Это можно преодолеть, например, задав переменные окружения ‘GCOV_PREFIX=/target/run’ и ‘GCOV_PREFIX_STRIP=1’. Такое задание переименует файл данных в /target/run/build/foo.gcda.

Для использования файлов данных для профилирования направленных оптимизаций (-fprofile-use) или для использования инструмента gcov, необходимо перенести файлы данных в ожидаемую древовидную структуру каталогов.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Cross-profiling.html

Spec-Zone.ru

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