Вывод статического анализатора clang в формате xml

Можно ли получить вывод в формате XML из анализатора сканирования-сборки Clang? В настоящее время следующая команда генерирует вывод в формате html для просмотра в веб-браузере.

scan-build xcodebuild -configuration Debug -sdk iphonesimulator

CppCheck в Windows генерирует вывод в формате XML. Мне нужно преобразовать результат в тот же формат, что и CppCheck. Но я не могу использовать cppCheck на MACOS. Я пытаюсь передать результаты в плагин Sonar C ++, чтобы я мог создать отчет панели управления (непрерывная интеграция) проекта ObjectiveC. Плагин Sonar C ++ использует CppCheck для статического анализа кода.

Мы будем благодарны за любой вклад.


person user2506411    schedule 21.06.2013    source источник


Ответы (2)


Запуск scan-build --help показывает:

-plist         - By default the output of scan-build is a set of HTML files.
                 This option outputs the results as a set of .plist files.
person Carl Norum    schedule 21.06.2013
comment
Спасибо. Он создает несколько файлов .plist для каждого класса. Например, в / tmp / scan-build-dir / я вижу много файлов .plist. Можно ли получить только один файл .plist со всеми результатами статического анализа? - person user2506411; 22.06.2013
comment
scan-build - это просто Perl-скрипт, IIRC. Вы сможете изменить его без особых усилий. - person Carl Norum; 23.06.2013
comment
Модификация скриптов, установленных через системы управления пакетами, не одобряется. - person Folkert van Heusden; 17.12.2020

По умолчанию статический анализатор clang выводит данные в формате xml. scan-build требуется, чтобы статический анализатор clang выводил данные в формате html и анализировал выходные данные HTML для генерации сводки всех ошибок, обнаруженных статическим анализатором в процессе сборки.

Если вы видите сценарий сканирования и построения, значит, есть функция PostProcess, когда формат вывода - html. scan-build на данный момент не обрабатывает plist файлы. Если вы знакомы с XML, вы сможете анализировать файлы XML (.plist) и выполнять пост-обработку для создания сводки.

person A. K.    schedule 25.06.2013