metrica
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

Вебинар: Трудности при интеграции SAST, как с ними справляться - 04.04

>
>
Просмотр отчетов в формате Sarif в Visu…
menu mobile close menu
Проверка проектов
Сообщения PVS-Studio
Диагностики общего назначения (General Analysis, C++)
Диагностики общего назначения (General Analysis, C#)
Диагностики общего назначения (General Analysis, Java)
Микрооптимизации (C++)
Диагностика 64-битных ошибок (Viva64, C++)
Реализовано по запросам пользователей (C++)
Cтандарт MISRA
Стандарт AUTOSAR
Стандарт OWASP (C#)
Проблемы при работе анализатора кода
Дополнительная информация
toggle menu Оглавление

Просмотр отчетов в формате Sarif в Visual Studio Code

06 Апр 2022

Внимание. Более предпочтительный вариант работы в Visual Studio Code - это использование расширения PVS-Studio для Visual Studio Code вместо использования плагина Sarif для Visual Studio Code описанного в данной документации.

Смотреть отчёты PVS-Studio в Visual Studio Code можно с помощью плагина Sarif Viewer. Ниже описано, как установить плагин, загрузить в него отчёт PVS-Studio и работать с ним.

Проанализировать код и получить отчёт анализатора можно одним из следующих способов:

Установка плагина Sarif Viewer

Чтобы установить плагин 'Sarif Viewer', откройте Visual Studio Code, перейдите на вкладку 'Extensions', введите в поле поиска "Sarif Viewer" и кликните по кнопке 'Install':

VisualStudioCode_ru/image1.png

Обратите внимание: для корректной работы требуется плагин версии 3.1.2 или выше. Если версию плагина 3.1.2 или выше в VS Code найти не удаётся, то вы можете скачать нужную версию из GitHub репозитория плагина. В исходниках каждой версии имеется файл с расширением .vsix.

Для установки плагина из .vsix-файла на вкладке 'Extentions' в правом верхнем углу необходимо нажать на три точки и в появившемся меню выбрать пункт 'Install from VSIX...':

VisualStudioCode_ru/image2.png

В открывшемся окне выберите .vsix-файл плагина 'Sarif Viewer'. После установки плагина перезапустите Visual Studio Code.

Работа с результатами анализа

Преобразование отчёта PVS-Studio в формат SARIF

SARIF — это универсальный формат предоставления информации от статических анализаторов. Формат SARIF используется не только в PVS-Studio, но и в других инструментах. Например, в GitHub в Code scanning alerts, Coverity и CodeSonar.

Для преобразования можно воспользоваться утилитами командной строки PlogConverter.exe для Windows и plog-converter для Linux/macOS. Эти утилиты позволяют не только конвертировать отчёт PVS-Studio в разные форматы, но и дополнительно обрабатывать его. Например, проводить фильтрацию сообщений.

Формат отчёта, который следует использовать в плагине Sarif Viewer, немного отличается от универсального SARIF-формата. Из-за этой особенности при конвертации отчёта для VS Code необходимо использовать специальный SARIF-формат:

  • 'SarifVSCode' в PlogConverter.exe;
  • 'sarif-vscode' в plog-converter.

Пример команды конвертации отчёта PVS-Studio в SARIF-формат для Visual Studio Code при помощи PlogConverter.exe (Windows):

PlogConverter.exe path\to\report.plog -t SarifVSCode ^
                                      -o output\directory ^
                                      -n converted_report_name

Пример команды конвертации отчёта PVS-Studio в SARIF-формат для Visual Studio Code при помощи plog-converter (Linux/macOS):

plog-converter path/to/report/file.json -t sarif-vscode \
                                        -o output/directory \
                                        -n converted_report_name

Примечание. Эти утилиты могут преобразовать отчёт PVS-Studio и в универсальный SARIF-формат. Этот формат возможно использовать в Sarif Viewer, но при этом навигация по дополнительным позициям предупреждений не будет работать.

Если пути в отчёте начинаются с метки '|?|', их нужно преобразовать в абсолютные. Без этого навигация по предупреждениям не будет работать. Используйте флаг 'r', чтобы заменить метку на часть пути.

Пример команды конвертации в SARIF-формат с преобразованием путей в абсолютные:

PlogConverter.exe path\to\report.plog -t SarifVSCode ^
                                      -o output\directory ^
                                      -n converted_report_name ^
                                      -r path\to\project\folder

Просмотр преобразованного отчёта PVS-Studio в VS Code

Для открытия отчёта в SARIF-формате используйте пункты меню 'File > Open File':

VisualStudioCode_ru/image3.png

Также отчёт можно открыть из проводника. Для этого используйте команду 'Open with Code' из контекстного меню:

VisualStudioCode_ru/image4.png

После загрузки отчёта откроется отдельная вкладка:

VisualStudioCode_ru/image5.png

В окне плагина имеется несколько вкладок для группировки предупреждений:

  • Locations — группировка предупреждений по файлам;
  • Rules — группировка предупреждений по правилам;
  • Logs — группировка предупреждений по файлам SARIF-отчётов.

Справа сверху во вкладке, добавленной плагином, имеется несколько элементов:

  • кнопка 'Collapse All' / 'Expand All'. Позволяет свернуть/развернуть все узлы предупреждений;
  • кнопка 'Open Log'. Позволяет открыть новый/ещё один SARIF-отчёт;
  • поле текстового фильтра с кнопкой.

Текстовый фильтр позволяет фильтровать предупреждения из отчёта по любому тексту, который отображается в таблице со списком предупреждений. Например, по тексту сообщения предупреждения, а также по полному или частичному имени файла:

VisualStudioCode_ru/image6.png

При нажатии на иконку фильтра открывается меню с дополнительными фильтрами предупреждений и чекбоксы для скрытия/отображения столбцов 'BaseLine', 'Suppression' и 'Rule':

VisualStudioCode_ru/image7.png

Подробная информация о выбранном предупреждении отображается во вкладке 'INFO':

VisualStudioCode_ru/image8.png

При клике на предупреждение открывается соответствующий файл на строке, на которую оно было выдано. Строка подчёркивается волнистой линией одного из трёх цветов. Каждый цвет обозначает уровень достоверности предупреждения и соответствует одному из уровней в дополнительных фильтрах:

  • Красный: High — Error;
  • Желтый: Medium — Warning;
  • Синий: Low — Note.
VisualStudioCode_ru/image9.png

С предупреждением анализатора могут быть связаны несколько позиций. При этом во вкладке 'INFO' будет отображено несколько строк напротив метки Locations:

VisualStudioCode_ru/image11.png

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