Вышел новый релиз PVS-Studio – 7.21. В этой заметке описали основные улучшения анализатора и собрали материалы от нашей команды, вышедшие в последнее время: статьи, опросы и записи докладов с конференций.
Загрузить PVS-Studio 7.21 можно тут. Если нет лицензионного ключа, получить триал можно здесь.
Итак, что же нового?
Отчёты PVS-Studio, совместимые с GitLab Code Quality
Результаты работы PVS-Studio теперь можно сконвертировать в отчёт, совместимый с GitLab Code Quality. Это поможет следить за качеством проекта в рамках экосистемы GitLab.
В документации по использованию PVS-Studio в GitLab CI/CD описали, как получить такой отчёт.
Более тесная интеграция с Unreal Engine
Мы продолжаем развивать поддержку проектов на основе Unreal Engine. В этот раз сразу три новости:
Улучшение кроссплатформенных сценариев работы
Плагин PVS-Studio для Visual Studio теперь умеет работать с файлами подавления в формате JSON (ранее формат поддерживался только утилитах в Linux и macOS). Это упрощает кроссплатформенные сценарии работы с подавленными предупреждениями. Внедрить PVS-Studio в кроссплатформенные проекты с legacy-кодом также станет легче.
Новые возможности подавления предупреждений
Теперь вы можете автоматически фильтровать предупреждения анализатора, сообщения которых содержат определённый текст. Это позволит подавлять предупреждения по шаблону, не отключая диагностики целиком. Описать такой фильтр можно в .pvsconfig-файлах (C++, C#) или прямо в коде (только C++).
Рассмотрим пример. Диагностика V3022 C# анализатора PVS-Studio выдаёт предупреждение, если выражение в коде всегда истинно или ложно.
Взглянем на фрагмент кода:
static void ProcessStr(String str)
{
if (str == "temp")
{
if (str.Length != 0) // V3022 (expression is always true)
....
if (str.Length == 0) // V3022 (expression is always false)
....
}
}
Допустим, мы не хотим выключать диагностику V3022 целиком, но хотим видеть только предупреждения на условия, которые всегда ложны. Для этого достаточно записать в .pvsconfig-файл такой фильтр:
//-V::3022::{always true}
PVS-Studio отфильтрует предупреждения V3022, которые содержат текст "always true". На примере кода выше первое предупреждение пропадёт, а второе останется.
Документация по файлам конфигурации диагностик (.pvsconfig)
Файлы конфигурации диагностик позволяют конфигурировать поведение анализатора, например:
В новом разделе документации мы описали все возможности .pvsconfig-файлов и способы работы с ними в разном окружении.
Новые диагностики
C, C++
C#
Интерактив
Сделали опрос "Кто ты в мире C#". Пройти его можно здесь.
Кстати, напишите, если сможете пройти тест не на результат "Ты сборщик мусора". Или мне так не везёт, или наша C# команда всех затроллить решила... :)
Если вы пропустили другие интерактивы, вот они:
Статьи
Для тех, кто пишет на C++:
Для тех, кто пишет на C#:
Поиск ошибок в коде проектов:
Доклады
В сеть выложили записи докладов с конференции DotNext 2022 Spring. Полный список записей доступен здесь.
От нашей команды на конференции было 2 доклада, и оба посвящены вопросам безопасности:
Ещё одна конференция, доклады с которой стали доступны – Heisenbug 2022 Spring. Полный список записей докладов – здесь.
Доклады от нашей команды: