Есть ли в любом случае объединить два файла GCOV в один

Я использую gcov для тестирования покрытия на платформе macosx. Я заканчиваю настройку для xcode, установив:

1. Build Settings ==> Generate Test Coverage Files == Yes
2. Build Settings ==> Instrument Progaram Flow == Yes
3. Build Phases ==> Link Binary with library ==> add "libprofile_rt.dylib"

Затем сгенерируйте файлыTest.d, Test.dia, Test.gcno, Test.gcda, Test.o"Тогда я использую gcov-4.2 -b Test.gcno Команда для генерации Test.m.gcov файл (это то, что я хочу), но в следующий раз, когда я снова запущу контрольные примеры, файлы "Test.d, Test.dia, Test.gcno, Test.gcda, Test.o"будет сгенерировано снова, и данные будут сброшены.

Итак, у меня есть два вопроса:

  1. Можно ли как-нибудь собрать данные в этих файлах покрытия, чтобы я мог много раз запускать свой проект, а затем создавать файлы в конце.
  2. Если № 1 безнадежен, подскажите, как merge two Test.gcno файлы (сгенерированные два раза подряд) в один. Я пытаюсь gcov в терминале, ниже приведены параметры для команды gcov:

    gcov-4.2 -help
    Usage: gcov [OPTION]... SOURCEFILE
    
    Print code coverage information.
    
      -h, --help                      Print this help, then exit
      -v, --version                   Print version number, then exit
      -a, --all-blocks                Show information for every basic block
      -b, --branch-probabilities      Include branch probabilities in output
      -c, --branch-counts             Given counts of branches taken
                                        rather than percentages
      -n, --no-output                 Do not create an output file
      -l, --long-file-names           Use long output file names for included
                                        source files
      -f, --function-summaries        Output summaries for each function
      -o, --object-directory DIR|FILE Search for object files in DIR or called FILE
      -p, --preserve-paths            Preserve all pathname components
      -u, --unconditional-branches    Show unconditional branch counts too
    
    For bug reporting instructions, please see:
    <URL:http://developer.apple.com/bugreporter>.
    

Спасибо за всю вашу помощь заранее

1 ответ

Обычный рабочий процесс для gcov является

  1. Компилировать и связать с поддержкой покрытия (-fprofile-arcs -ftest-coverage)
  2. Запустите ваши исполняемые файлы, возможно, несколько раз, возможно, с другими параметрами / настройками. Это создаст накопительную информацию об использовании в .gcda файлы
  3. взывать gcov получить статистику покрытия в удобочитаемом формате (.gcov)

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

Другие вопросы по тегам