﻿# PVS\-Studio 7\.31: новые возможности C\+\+ анализатора, расширение функционала пользовательских аннотаций

Вышел новый релиз PVS\-Studio — 7\.31\. Доработка пользовательских аннотаций, расширение режима анализа отдельных файлов, новые вебинары и ещё много других новостей\! Больше подробностей в этой заметке\.

![1133_7_31_ru/image1.png](https://import.viva64.com/docx/blog/1133_7_31_ru/image1.png)


> Загрузить актуальную версию PVS\\\-Studio можно \[здесь\]\(https://pvs\-studio\.ru/ru/pvs\-studio/try\-free/\)\\\.



**Расширен режим анализа отдельных файлов**

В утилите _pvs\-studio\-analyzer _была_ _расширена система анализа отдельных файлов с помощью флага _\-\-source\-files_\. 


> Больше про флаги запуска анализа можно узнать \[здесь\]\(https://pvs\-studio\.ru/ru/docs/manual/6615/\#flags\)\\\.



Теперь использование утилиты в условиях отличия кэша зависимостей компиляций для C и C\+\+ файлов от структуры проекта стало более удобным\. 

Такая ситуация может возникнуть, например, при частом переключении веток в одном рабочем пространстве или запуске анализа на разных версиях проекта\.

Больше об этом режиме можно узнать в [документации](https://pvs-studio.ru/ru/docs/manual/0055/#cpp_dependency_cache)\.

**Новая возможность настройки конфигурационных файлов**

Для C и C\+\+ анализатора PVS\-Studio появилась возможность установки настроек в конфигурационных файлах _\.pvsconfig_ в зависимости от версии анализатора, использующего данные файлы\.

Подробнее можно узнать в [документации](https://pvs-studio.ru/ru/docs/manual/6630/#sections)\.

**Расширение функционала пользовательских аннотаций**

Для C и C\+\+ анализатора в [систему пользовательских аннотаций](https://pvs-studio.ru/ru/docs/manual/6743/) была добавлена возможность задавать диапазоны допустимых и недопустимых значений для целочисленных параметров функций\.

Подробнее про систему пользовательских аннотаций и нововведения можно узнать в [документации](https://pvs-studio.ru/ru/docs/manual/6743/)\.

**Обновление документации CircleCI**

Была доработана и актуализирована документация об использовании анализаторов PVS\-Studio в облачной CI\-системе CircleCI\.

Документация доступна по [ссылке](https://pvs-studio.ru/ru/docs/manual/0054/)\.

**Новые диагностические правила**

C, С\+\+

* [V1108](https://pvs-studio.ru/ru/docs/warnings/v1108/)\. Constraint specified in a custom function annotation on the parameter is violated\.
* [V1109](https://pvs-studio.ru/ru/docs/warnings/v1109/)\. Function is deprecated\. Consider switching to an equivalent newer function\.
* [V1110](https://pvs-studio.ru/ru/docs/warnings/v1110/)\. Constructor of a class inherited from 'QObject' does not use a pointer to a parent object\.

C\#

* [V3199](https://pvs-studio.ru/ru/docs/warnings/v3199/)\. Index from end operator used with the value that is less than or equal to zero\. Index is out of bound\.
* [V3200](https://pvs-studio.ru/ru/docs/warnings/v3200/)\. Possible overflow\. The expression will be evaluated before casting\. Consider casting one of the operands instead\.

Java

* [V6113](https://pvs-studio.ru/ru/docs/warnings/v6113/)\. Suspicious division\. Absolute value of the left operand is less than the value of the right operand\.
* [V6114](https://pvs-studio.ru/ru/docs/warnings/v6114/)\. The 'A' class containing Closeable members does not release the resources that the field is holding\.

**Анонс нового вебинара**



![1133_7_31_ru/image2.png](https://import.viva64.com/docx/blog/1133_7_31_ru/image2.png)

В этом релизе мы провели целых два вебинара на следующие темы: "Базовые сценарии интеграции SAST решения в legacy\-проект на примере PVS\-Studio" и "Что скрывают Blender и YTsaurus? Вся правда о технологии статического анализа"\. 


> Записи вебинаров доступны здесь: "\[Базовые сценарии интеграции SAST решения\]\(https://pvs\-studio\.ru/ru/blog/video/11001/\)" и "\[Вся правда о технологии статического анализа\]\(https://pvs\-studio\.ru/ru/blog/video/11023/\)"



Мы анонсируем продолжение марафона вебинаров\! Темой в этот раз являются линтеры\. В новом вебинаре "C\+\+ ЛИНТЕРЫ — ХОРОШО, НО НЕДОСТАТОЧНО" мы разберёмся, как они работают, почему линтеры остались в прошлом и какие технологии требуются для нахождения тех или иных ошибок\.

Вебинар пройдёт 20 июня в 14:00 \(МСК\)\. 

Зарегистрироваться можно [здесь](https://pvs-studio.ru/ru/webinar/)\.

**Статьи**

Для тех, кто пишет на C\+\+:

* [Сколько UB в моём компиляторе?](https://pvs-studio.ru/ru/blog/posts/cpp/1130/)
* [Путеводитель C\+\+ программиста по неопределённому поведению: часть 1 из 11](https://pvs-studio.ru/ru/blog/posts/cpp/1129/)
* [Объявляю ошибку вида if \(x \= 42\) вымирающей и заношу её в Красную книгу C и C\+\+ багов](https://pvs-studio.ru/ru/blog/posts/cpp/1127/)
* [Какие ошибки есть в коде LLVM?](https://pvs-studio.ru/ru/blog/posts/cpp/1126/)
* [11 мгновений ReactOS: user mode становится лучше?](https://pvs-studio.ru/ru/blog/posts/cpp/1122/)
* [Подборка крутых докладов по С\+\+ за 2023 год](https://pvs-studio.ru/ru/blog/posts/1120/)
* [Проверка игрового движка qdEngine, часть первая: топ 10 предупреждений PVS\-Studio](https://pvs-studio.ru/ru/blog/posts/cpp/1119/)
* [Проверка игрового движка qdEngine, часть вторая: упрощение C\+\+ кода](https://pvs-studio.ru/ru/blog/posts/cpp/1121/)
* [Проверка игрового движка qdEngine, часть третья: дополнительная десятка багов](https://pvs-studio.ru/ru/blog/posts/cpp/1123/)
* [С\+\+: освобождение ресурсов в деструкторах с использованием вспомогательных функций](https://pvs-studio.ru/ru/blog/posts/cpp/1125/)

Для тех, кто пишет на C\#:

* [Garnet\. Хранит ли баги кэш\-хранилище от Microsoft?](https://pvs-studio.ru/ru/blog/posts/csharp/1124/)
* [Кошмар нефалема\. Исследуем ошибки в коде эмулятора сервера Diablo 3](https://pvs-studio.ru/ru/blog/posts/csharp/1118/)

Для тех, кто пишет на Java:

* [Как шаблонный метод может сломать ваш Java код](https://pvs-studio.ru/ru/blog/posts/java/1132/)
* [Ловушки volatile, DCL и синхронизации в Java](https://pvs-studio.ru/ru/blog/posts/java/1128/)
* [21 ошибка в 21\-й версии Apache NetBeans](https://pvs-studio.ru/ru/blog/posts/java/1117/)

Статьи общей тематики:

* [Улыбка сквозь баги](https://pvs-studio.ru/ru/blog/posts/cpp/1131/)

**Доклады**

В этом релизе наша команда поучаствовала во множестве конференций с интересными докладами, предлагаем ознакомиться:

**Внедрение SAST без слёз**

Статический анализ кода является полезным инструментом в руках разработчика, но неверное знакомство может испортить первый опыт, напугать и демотивировать команду\. В этом докладе C\# разработчик Глеб Асламов разберёт основные проблемы при интеграции статического анализатора в существующий проект, способы их решения и варианты для повышения эффективности анализа\. 

Посмотреть можно тут:

<https://www.youtube.com/watch?v=uvfPmkf73vY>

**Статический анализ и C\+\+ — от ненависти до любви**

В этом докладе С\+\+ разработчик Алексей Горшков расскажет про многие возможности статического анализа, а также за что программисты, преуспевшие в использовании технологий, её уважают\. Будет приведено много интересных примеров из нашей практики, приглашаем ознакомиться:

<https://www.youtube.com/watch?v=DnMMjU3zrXg>

**SAST как правая рука разработчика**

В чём важность раннего обнаружения ошибок? Как этого добиться? Об этом, а также про опасность уязвимостей и способы борьбы с ними, расскажет C\# разработчик Глеб Асламов\. 

Посмотреть можно тут:

<https://www.youtube.com/watch?v=EDtQ1w-J_a8>

**Новая серия роликов**

А ещё у нас начинается новый цикл роликов, посвящённый мини\-книге Андрея Карпова "60 антипаттернов для С\+\+ программиста"\!


> Если не терпится узнать остальные антипаттерны сразу, можете ознакомиться с полной версией у нас \[в блоге\]\(https://pvs\-studio\.ru/ru/blog/posts/cpp/1053/\)\\\.



Если вы хотите создавать эффективные, надёжные и хорошо структурированные программы на языке C\+\+, то знание ошибок и неэффективных подходов поможет вам в этом\. Теперь и в видео формате:

<https://www.youtube.com/watch?v=Uc1dhqCuR6k>




> Хотите проверить свой проект с помощью PVS\\\-Studio? Начните с \[этой страницы\]\(https://pvs\-studio\.ru/ru/pvs\-studio/try\-free/\)\\\.



Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS\-Studio по [ссылке](https://pvs-studio.ru/ru/subscribe/)\.