Spec-Zone.ru › GCC 14

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

Spec-Zone.ru

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