Spec-Zone.ru › GCC 15

11.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-15.3.0/gcc/Cross_002dprofiling.html

Spec-Zone.ru

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