iPhone: Как я могу использовать gcov? - PullRequest
5 голосов
/ 11 июля 2010

Я пытаюсь использовать gcov в iPhone Project и следую инструкции Apple, описанной здесь , но это не работает.

Когда я собираю и запускаю настроенный проект, файл .gcdaсоздается для каждого объектного файла.Но исполняемые строки не записываются в файлы .gcda.(CoverStory показывает, что все покрытия равны 0%)

Я просто добавил простой класс в шаблонный проект следующим образом.

@interface SomeClass : NSObject
- (void)func1:(BOOL)flag;
@end

@implementation SomeClass
- (void)func1:(BOOL)flag {
  if (flag) {
    NSLog(@"flag is YES");
  }
  else {
    NSLog(@"flag is NO");  
  }
}
@end

Я выделил этот класс и вызвал func1 в приложении: didFinishLaunchingWithOptions, и яожидается, что покрытие SomeClass будет показано (около 50%).

Я использую OSX 10.6.4, iPhone SDK 4.0 и Xcode 3.2.3.Еще несколько конфигураций нужны?Пожалуйста, руководство.

ОБНОВЛЕНИЕ 2010/7/15:

Я попробовал эти подсказки в ссылке , которую дал @tonclon, но она пока не работала.В следующем описании я попробовал.

  1. Приложение какао, скомпилированное GCC 4.0 В настройках проекта приложения "Какао"

    • установите GCC_INSTRUMENT_PROGRAM_FLOW_ARCS на YES
    • установить для GCC_GENERATE_TEST_COVERAGE_FILES значение YES
    • установить для флага другого компоновщика значение -lgcov
    • установить для версии компилятора C / C ++ значение 4,0

    сработало, .gcdaфайлы были сгенерированы с информацией о покрытии, как и ожидалось.В проекте iPhone с SDK 4.0, однако, я не могу использовать ту же конфигурацию, потому что gcc 4.0 не может скомпилировать некоторый синтаксис в SDK 4.0 (бывшие блоки)

  2. с использованием пользовательской библиотеки gcov в Google-tool-box Вместо установки -lgcov в Other Linker Flag я попытался пользовательская библиотека gcov, включенная в google-toolbox-for-mac , но сгенерированные файлы .gcda показывают, что охват составляет 0%.(тот же результат)

Подскажите, пожалуйста, что мне делать дальше?Любые предложения приветствуются.

1 Ответ

0 голосов
/ 04 января 2011

Пара вещей:

  1. Отключить префикс заголовков
  2. Убедитесь, что вы вышли «правильно»

Пожалуйста, посмотрите здесь страницы gcov (http://code.google.com/p/google-toolbox-for-mac/w/list) и посмотрите, помогают ли они вообще. У меня gcov работает с Xcode 3.2.5 и iOS4.2.

...