PVS-Studio: поиск ошибок в коде
1.85K subscribers
1.66K photos
89 videos
2 files
1.65K links
Статический анализатор на страже качества, защищённости (SAST) и безопасности кода.

Наш стек: C, C++, C#, Java, JS, TS, Go

Сайт: https://pvs-studio.ru/

E-Mail: support@viva64.com
Телефон: +7(903)844-02-22

Для бизнеса: https://xn--r1a.website/pvsstudio_business
Download Telegram
В версии PVS-Studio 7.41 мы завершили работы по покрытию стандарта MISRA C 2023, обеспечив его поддержку на уровне 86%. Но на этом мы не остановились!

С релиза 7.42 мы начали работы по покрытию стандарта MISRA C++ 2023.

Мы адаптировали 22 существующих диагностических правила группы MISRA под стандарт MISRA C++ 2023, а также добавили в плагины PVS-Studio для IDE и утилиты командной строки возможность выбора версии MISRA C++.

Подробнее о поддержке стандартов MISRA можно прочитать на этой странице.

А с полной версией релиза 7.42 можно ознакомиться тут. Или можно посмотреть видео 😉

#PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Тимлиды приходят в роль через сильную техническую экспертизу, но дальше рост зависит от умения работать с людьми: выстраивать коммуникацию, замечать изменения в состоянии команды и вовремя реагировать на проблемы. На вебинаре поговорим о том, как использовать 1-to-1 в качестве рабочего инструмента управления командой.

📅28 мая в 14:00

Ссылка на регистрацию тут 🔗

#вебинар
5
У нас тут фрагмент кода из проекта TDengine — база данных для IoT систем. Нашли ошибку? Пишите ответ в комментарии!

#cpp #ошибка
Gradle активно развивается, и вместе с ним появляются удобные инструменты: Version Catalog, Convention Plugins, улучшенная агрегация отчётов. В новом цикле вебинаров разберём, как ими пользоваться в реальном мультимодульном проекте. На каждой встрече берём задачу и разбираем её вживую в терминале и редакторе. К концу цикла постепенно вырастает цельный проект на актуальном стеке, который можно использовать как шаблон для новых проектов.

Мы уже провели ознакомительный вебинар, на котором подробнее рассказали, что вас ждет. Посмотреть можно тут 👈🏻

А уже 4 июня в 14:00 будем обсуждать границы зависимостей в Gradle 🗓

Зарегистрироваться на цикл можно по этой ссылке 🔗

#java #gradle #вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Как взять риски ПО на Java под контроль и выполнить требования регуляторов за полгода? Расскажут наши друзья из Axiom JDK!

26 мая в 11:00 Роман Карпов, генеральный директор Axiom JDK, расскажет, какие нормативные акты напрямую влияют на выбор Java-среды и как закрыть их требования без аврала.

Ссылочка на регистрацию тут 🔗

#вебинар
Мы работаем не покладая рук и постоянно стремимся улучшать наши анализаторы. И вот в последнем релизе 7.42 мы улучшили работу C, C++ и C# анализаторов.

В C и C++ анализаторе уменьшено время анализа шаблонного кода за счёт улучшения механизма его обработки. Также улучшены вычисление и анализ простых функций в зависимости от контекста, с которым они вызываются.

В C# анализаторе добавлены дополнительные механизмы для отладки его работы. Когда анализатор не может получить встроенные .NET-типы, выдаётся новое предупреждение V053. Добавлен флаг --createBinaryLogs для логирования работы механизмов Roslyn. Подробнее об этом написано в документации.

Также в C# анализаторе исправлена ошибка при проверке .NET Framework проектов не SDK стиля, которая возникала после обновления Visual Studio 2026 до версии 18.4.0+.

А тут вы найдете полную заметку со всеми последними обновлениями 👈🏻

#PVS_Studio
4
This media is not supported in your browser
VIEW IN TELEGRAM
Анонсировали Unreal Engine 6 🔥

Компания Epic Games объявила о разработке нового движка и подтвердила, что Rocket League станет первым проектом на нем. Пользователям пообещали решить проблемы с производительностью и визуальной составляющей, которые наблюдались в предыдущей версии движка.

Но давайте честно: баги все равно будут встречаться на пути. И чтобы ваши проекты летали на любой версии Unreal Engine, используйте статический анализатор. В этой документации вы можете подробнее почитать про то, как PVS-Studio проверяет Unreal Engine проекты.

А здесь промокод на бесплатное использование анализатора в течение 30 дней 😉

#PVS_Studio #gamedev

Источник видео
Please open Telegram to view this post
VIEW IN TELEGRAM
62
Давненько мы не собирали дайджесты по языкам. Время это исправить!

Мы собрали самые интересные события в мире C++ за последнее время, а также полезные материалы. Подробности по ссылке 🔗

#cpp #статья #дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Наш анализатор проверил исходный код трейдерского движка Lean и нашел в этом фрагменте ошибку. А вы сможете? 😉

Еще больше интересных ошибок из проекта можно найти по ссылке 🔗

#csharp #ошибка
This media is not supported in your browser
VIEW IN TELEGRAM
Уже скоро новый вебинар из цикла "Современный Gradle для Java-разработчика"! 🔥

Мы уже провели ознакомительный вебинар, на котором подробнее рассказали, что вас ждет. Посмотреть можно тут.

🗓 4 июня в 14:00 мы обсудим:

- Почему один модуль видит зависимости другого, а другой нет?
- Когда использовать api, а когда implementation?
- И почему неправильный выбор конфигурации приводит к утечке зависимостей, конфликтам версий и хаосу в проекте?

Регистрация доступна по ссылке 🔗

#java #gradle #вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Эти вопросы были заданы не просто так... На самом деле мы начали определять, какой ты разработчик в мире RPG 🔥

Проект — это приключение: разгадывание тайн ТЗ, путь через тёмное легаси, борьба с багами. В этом участвуют разные специалисты, каждый из которых имеет свои уникальные черты и может быть отнесён к определённому классу или архетипу.

Так какой же класс у тебя? Пройди квиз и узнай!

#квиз
Please open Telegram to view this post
VIEW IN TELEGRAM
3
В наши дни каждый разработчик наверняка пробовал вайбкодить, а некоторые идут дальше и заводят себе целых ИИ-агентов. Однако отовсюду доносятся новости о том, как какой-то ИИ-агент удалил базу данных со всеми бэкапами.

Поэтому давайте посмотрим исходных код проектов, которые так или иначе связаны с агентной разработкой. Переходите по ссылке 🔗

#статья #ии #go
Please open Telegram to view this post
VIEW IN TELEGRAM
43
Про новые интеграции ⚡️

Начиная с релиза 7.42 у нас появилось еще больше новых интеграций:

1️⃣ Qt Creator 19
Появилась поддержка плагина PVS-Studio для Qt Creator версий 19.x. Плагин позволяет запускать анализ, просматривать предупреждения и работать с кодом, не покидая привычную среду разработки. Подробнее о работе с плагином можно прочитать в документации.

2️⃣ Интеграция в SourceCraft
SourceCraft — платформа, с помощью которой можно разрабатывать исходный код, управлять версиями, тестировать, собирать, развёртывать и сопровождать программные продукты. Мы проверили техническую совместимость PVS-Studio с этой платформой и описали процесс её использования в нашей документации.

3️⃣ Официальная интеграция в CMake
Начиная с версии 4.3.0 сборочная система CMake имеет встроенный механизм для работы с PVS-Studio, при котором срабатывания анализатора будут появляться в процессе компиляции проекта. Подробнее об этом можно прочитать в документации.

А тут вы найдете полную заметку со всеми последними обновлениями 👈🏻

#PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
42
Еще 2 года назад мы утвердили новый праздник в мире IT — День защиты джунов ❤️

Дорогие джуны, пусть каждая строка кода, которую вы напишете, будет шагом к вашему профессиональному росту и успеху. И помните, что ошибки может совершить каждый.

А чтобы их было как можно меньше, попробуйте PVS-Studio 😏

#праздник
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Дайте посмотреть на нормальный С++ проект, созданный вайб-кодингом

Чтобы корректировать развитие PVS-Studio я заинтересован смотреть C++ проекты, созданные с использованием генеративного AI или, по-простому, вайб-кодинга. Но вот незадача: все кругом пишут про этот самый вайб-кодинг, но я не знаю, как и где искать такие открытые проекты.

Мне попадается какая-то белиберда типа enhance-client, сгенерированная за $15. Но это даже смотреть несерьёзно. По присутствию в репозитории .obj, .iobj, .ipdb файлов и прочего мусора видно, что автор не понимает, что он делает. Проект не компилируется по разным причинам, например, из-за того, что заложен какой-то огрызок файла bytes.hpp (у массива нет конца).

Если немного поправить и проверить, что удалось собрать, то там лезут перлы вида:
void enhance::modules::autototem::run()
{
  ....
  auto env = enhance::instance->get_env();
  if (!env)
  {
    env->DeleteLocalRef(player);
    return;
  }
  ....
}

Предупреждение PVS-Studio: V522 [CWE-476, CERT-EXP34-C, SEC-NULL] Dereferencing of the null pointer 'env' might take place. autototem.cpp 757

Явное разыменование нулевого указателя.

Или бессмысленные сравнения значения типа int с константой 0.1f:
int sdk::minecraft_client::get_attack_cooldown() { .... }
 
void enhance::modules::shield_breaker::run()
{
  ....
  if (sdk::instance->get_attack_cooldown() > 0.1f)
  ....
}

Предупреждение PVS-Studio: V674 [CWE-682, CERT-FLP36-C] The '0.1f' literal of the 'float' type is compared to a value of the 'int' type. shield_breaker.cpp 628

Такие ляпы нет смысла серьёзно разбирать и описывать.

Можно спросить: "А что ты хочешь от поделок за 15$?" Да, в общем-то, ничего, но вместо нормальных проектов попадаются они. Мне интересно изучить большие открытые проекты нормального качества, при написании которых используется GenAI. А то пока ощущение, что термин "вайб-кодинг" есть, а C++ проектов нет. Или за них стыдно? :)

Если вы знаете подобные большие проекты, то присылайте ссылки на них в комментарии. Заранее спасибо.
4