iPhone: не удается получить симулятор для создания файлов данных профилирования .gcda - PullRequest
8 голосов
/ 13 января 2011

Я пытаюсь профилировать свой код с помощью симулятора iPhone. Я включил Создать файл покрытия теста и Поток программы прибора и добавил -lgcov к флагам компоновщика. В соответствии со всем, что я прочитал, это должно быть все, что мне нужно сделать с точки зрения настройки.

Обновление: Создание файла покрытия теста вызывает флаг -ftest-покрытие и Поток программы прибора запускает -fprofile-arcs флаг. Я проверил журналы сборки, и они устанавливаются при компиляции.

При выполнении программы я вижу файлы .gcno , которые отображаются рядом со скомпилированным кодом .o в сборке / .build / Debug-iphonesimulator / Каталог .build / Objects-normal / i386.

Но когда я запускаю приложение в симуляторе, я не получаю никаких файлов *. Gcda .

Насколько я понимаю, эти файлы содержат данные от приборов. Но я нигде не могу найти их на компьютере.

Я знаю, что их можно создавать и показывать рядом с файлами *. Gcno , потому что у меня есть старый каталог сборок, в котором они есть. Я просто не могу понять, что мне нужно сделать, чтобы они появились и записали пробег.

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 21 января 2011

Надеюсь, эта ссылка даст вам некоторое представление.Изучение найденной ссылки

.gcno файл создается, когда исходный файл компилируется с опцией GCC -ftest-покрытие.Он содержит информацию, позволяющую восстановить базовые графы блоков и назначить номера строк строк источника.

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

Так что, возможно, вы строите с некоторыми неправильными настройками.Информация указана на http://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Files

1 голос
/ 17 января 2011

Эта ссылка может иметь ответ, в основном gcda-файлы не генерируются, пока ваше приложение не завершится должным образом. Это дает два возможных решения:

  • полностью выйти из симулятора
  • добавьте это в свой список (но не для релизных сборок):

    <key>UIApplicationExitsOnSuspend</key>
    <true/>
    
...