Вышел новый релиз PVS‑Studio — 7.23. В нём мы улучшили поддержку Qt Creator, увеличили стабильность работы PVS‑Studio Java, решили проблемы при анализе проектов, использующих NMake, добавили ряд новых диагностик и многое другое. Подробности в этой заметке. В прошлом релизе мы выпустили плагин PVS‑Studio для Qt Creator. Выглядит он следующим образом (скриншот кликабельный): Примерно в тот же момент вышел Qt Creator 9. Конечно, поддержать новую версию уже тогда мы бы не успели. Однако теперь плагин работает и с Qt Creator версий 9.0.*. Более того, в релизе 7.23 стало возможно использовать плагин для Qt Creator не только под Windows и Linux, но и под macOS на архитектуре x86–64. На данный момент плагин даёт возможность открывать отчёт, смотреть и фильтровать предупреждения, и т. п. В будущих релизах мы также планируем добавить в него возможность запуска анализа. Документация к плагину доступна по ссылке. Некоторое время назад мы обнаружили проблемы в работе нашего Java‑анализатора под системами семейства Unix. В ряде случаев анализатор сразу после запуска аварийно завершал работу и выдавал ошибку подобного вида: Ошибка была связана с проблемами загрузки динамических библиотек. В релизе 7.23 она была устранена, и теперь Java разработчики могут спокойно использовать PVS‑Studio для анализа своих проектов под Unix системами:). Если же у вас всё ещё появляется эта или какая‑то другая ошибка, напишите нам, постараемся помочь. При анализе CMake‑проекта, использующего NMake, в некоторых случаях появлялась ошибка следующего вида: Данная проблема связана с ограничениями NMake на длину команды, однако, нам удалось её решить. Теперь анализатор успешно генерирует отчёт для всего проекта. Если ранее вы пробовали PVS‑Studio и сталкивались с описанной ошибкой, то предлагаю вам скачать новую версию, в которой проблема решена. C, C++ V1093. The result of the right shift operation will always be 0. The right operand is greater than or equal to the number of bits in the left operand. V1094. Conditional escape sequence in literal. Its representation is implementation-defined. C# V3184. The argument's value is greater than the size of the collection. Passing the value into the 'Foo' method will result in an exception. V3185. An argument containing a file path could be mixed up with another argument. The other function parameter expects a file path instead. V3186. The arguments violate the bounds of collection. Passing these values into the method will result in an exception. В этот раз наша команда сделала весьма залипательную игру «Рабочий день программиста»: Сыграть в неё можно здесь. Осторожно — игра очень жизненная. Также мы сделали рождественский квиз «Спаси Рождество от багов», который можно пройти здесь. В нём вам предстоит ответить на вопросы о рождественских историях багов в разных известных компаниях. Отличная возможность вновь ощутить атмосферу праздника:). Также предлагаю вам пройти наш небольшой опрос, в конце которого вы получите небольшой подарок. Для тех, кто пишет на C++: Ложные представления программистов о неопределённом поведении Топ-10 ошибок в C++ проектах за 2022 год PVS-Studio и RPCS3: лучшие предупреждения в один клик Для тех, кто пишет на C#: PVS-Studio научился анализировать Blazor компоненты Топ-10 ошибок, найденных в C#-проектах за 2022 год PVS-Studio и protobuf-net: лучшие предупреждения в один клик Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C# .NET 7: разбираем ошибки и подозрительные места в исходниках Разное: Обзор плагина PVS-Studio для Visual Studio Code Изменения в PVS-Studio, о которых полезно знать Под капотом SAST: как инструменты анализа кода ищут дефекты безопасности Wave Function Collapse для процедурной генерации в Unity C++ — язык 2022 года. Почему так, и что с другими языками? PVS-Studio в 2022 году Новогодние праздники вместе с PVS–Studio PVS-Studio: 2 фишки для быстрого старта ** Загрузить последнюю версию PVS‑Studio можно здесь. Если хотите получать пресс‑релизы по почте, подписывайтесь на рассылку. Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Nikita Lipilin. PVS‑Studio 7.23: Qt Creator 9 plugin, and more.  Разработчик, руководитель, прокрастинатор