Вышел новый релиз PVS-Studio — 7.22. В него вошли плагины для Visual Studio Code и Qt Creator, поддержка анализа проектов на .NET 7, доработки механизма Best Warnings, новые диагностики и не только. Подробности описали в этой заметке.
Плагины для Visual Studio Code и Qt Creator
Новые плагины дают ещё больше вариантов кроссплатформенной работы. Сейчас в них можно работать с логами: смотреть предупреждения, фильтровать их, сортировать в гриде и т. п. Запускать анализ пока нельзя — планируем добавить такую возможность в будущих релизах.
Так выглядит плагин для Visual Studio Code:
А вот так — плагин для Qt Creator:
Документация по новым плагинам доступна на соответствующих страницах:
Поддержка анализа .NET 7, C# 11 и Blazor компонентов
Здесь почти всё понятно из заголовка. Сам C# анализатор под Linux и macOS, кстати, теперь тоже работает на .NET 7.
Небольшое уточнение про Blazor компоненты: сейчас поддерживается анализ в code секциях .razor-файлов. Планируем статью, которая раскроет тему чуть подробнее.
Улучшения и доработки Best Warnings
Напомню, что Best Warnings — механизм, который из всех предупреждений анализатора выбирает самые интересные. Особенно полезен при первом знакомстве с PVS-Studio, так как поможет в один клик оценить, что интересного удалось найти.
В этом релизе обновлений Best Warnings сразу несколько:
1. Изменили интерфейс. До кнопки "Best Warnings" легче добраться — теперь она находится на основной панели главного окна PVS-Studio:
Если нужно, кнопку можно скрыть через настройки (опция "Show Best Warnings Button").
2. Скорректировали "веса" диагностик и алгоритмы выборки. Это должно сделать подборку предупреждений интереснее.
3. Добавили фильтр в большее количество IDE. Раньше механизм Best Warnings был доступен только в плагине для Visual Studio. Теперь кроме VS его можно использовать в утилите "C and C++ Compiler Monitoring UI", а также в плагинах для IntelliJ IDEA, Rider, CLion.
Обновлённая документация по Best Warnings — на этой странице.
Новые диагностики
C, C++
- V836. Decreased performance. Unnecessary copying is detected when declaring a variable. Consider declaring the variable as a reference.
- V2018. Cast should not remove 'const' qualifier from the type that is pointed to by a pointer or a reference.
- V2019. Cast should not remove 'volatile' qualifier from the type that is pointed to by a pointer or a reference.
C#
- V3183. Code formatting implies that the statement should not be a part of the 'then' branch that belongs to the preceding 'if' statement.
- V5626. OWASP. Possible ReDoS vulnerability. Potentially tainted data is processed by regular expression that contains an unsafe pattern.
- V5627. OWASP. Possible NoSQL injection. Potentially tainted data is used to create query.
- V5628. OWASP. Possible Zip Slip vulnerability. Potentially tainted data is used in the path to extract the file.
Статьи
Для тех, кто пишет на C++:
- PVS-Studio и RPCS3: лучшие предупреждения в один клик.
- Как мы баг в PVS-Studio искали или 278 Гигабайтов логов.
- 0, 1, 2, Фредди забрал Blender.
- Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0.
- Как PVS-Studio защищает от поспешных правок кода, пример N6.
Для тех, кто пишет на C#:
- .NET 7: разбираем ошибки и подозрительные места в исходниках.
- Обзор нововведений в C# 11.
- Что нового в .NET 7?
- Как увеличилась производительность LINQ в .NET 7?
- Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?
Разное:
- PVS-Studio: 2 фишки для быстрого старта.
- Почему ты делаешь за меня мою работу? Типы людей, которые не пишут в поддержку.
- Как Apple и другие крупные компании настиг программный баг.
**
Загрузить PVS-Studio 7.22 можно здесь.
Если хотите получать пресс-релизы по почте, подписывайтесь на рассылку.
Комментарии (8)
axel92
16.12.2022 13:44Планируете выпустить бесплатную версию для некоммерческого использования?
foto_shooter Автор
16.12.2022 13:48+1Для бесплатного использования в некоммерческих проектах есть несколько вариантов. Они описаны в этой статье.
Если хочется просто попробовать — легче воспользоваться триалом.
grumegargler
16.12.2022 17:33А есть какие-то существенные отличия в работе плагина для vscode по сравнению с текущим механизмом вывода сообщений в панель Problems для cmake-проектов?
В принципе, такое вот включение выводит все сообщения прямо куда нужно:
pvs_studio_add_target(TARGET parser.analyze ALL OUTPUT HIDE_HELP FORMAT errorfile-verbose ANALYZE ${PROJECT_NAME} MODE GA:1,2 )
censor2005
Плагин доступен только для версии Qt Creator 8?
AlexanderKurenev
На данный момент только для версии Qt Creator 8.0.x. А вы какую версию используете?
censor2005
Qt Creator 9.0.1. До этого была версия 7, сегодня после прочтения статьи обновил, и обновилось сразу до 9. Как обновить до 8, не понял...
AlexanderKurenev
Мы сейчас работаем над версией плагина для Qt Creator 9.0.x. Выдадим вам бету и скажем, что с ней делать, как будет готова.