Как стать автором
Поиск
Написать публикацию
Обновить
328.45
PVS-Studio
Статический анализ кода для C, C++, C# и Java
Сначала показывать

Самые интересные блоги и сайты по C# / .NET

Время на прочтение3 мин
Количество просмотров17K

0907_cs_sites_ru/image1.png


В этой небольшой подборке собраны разные источники информации, которые могут быть полезны C# / .NET разработчикам: блоги, репозитории с исходным кодом, стандарты и аккаунты разработчиков, рассказывающих о тонкостях как языка, так и платформы в целом.

Читать дальше →

Прокачка статического анализа проектов на Unreal Engine 4 и проверка автосимулятора Carla

Время на прочтение17 мин
Количество просмотров3.2K

Одним из механизмов статического анализа является аннотирование методов популярных библиотек. Аннотации позволяют обладать большей информацией при диагностировании ошибок в коде. Впечатляющий свободный проект на С++ CARLA помог нам внедрить этот механизм. Впоследствии симулятор стал целью для проверки улучшенным статанализатором PVS-Studio.


0888_Carla/image2.png

Читать дальше →

Проверяем эмулятор RPCS3 с помощью PVS-Studio

Время на прочтение9 мин
Количество просмотров5.3K

RPCS3 – интересный проект, который эмулирует консоль PS3. Он активно развивается: недавно была новость о том, что он научился запускать все игры из своего каталога. Это хороший повод для проверки – посмотрим, какие ошибки остались после исправлений.


0886_rpcs3_ru/image1.png

Читать дальше →

PVS-Studio для JetBrains CLion: через тернии к звёздам

Время на прочтение5 мин
Количество просмотров3.4K

В PVS-Studio уже некоторое время есть плагины для таких IDE от JetBrains, как Rider, IntelliJ IDEA и Android Studio. Другую известную среду разработки, CLion, мы долгое время незаслуженно обходили стороной. Исправляемся! Но зачем вообще вам PVS-Studio, если в CLion уже есть анализ кода? Какие проблемы возникли при разработке? На эти вопросы мы ответим ниже.

Читать далее

Beta-тестирование плагина PVS-Studio для JetBrains CLion

Время на прочтение7 мин
Количество просмотров1.8K


Традиционно сложилось, что основной средой разработки для работы с анализатором PVS-Studio была среда Visual Studio от Microsoft. Наш анализатор начинал свой путь на Windows, поэтому выбор Visual Studio был вполне оправданным и очевидным. Тем не менее, более чем за 10 лет развития PVS-Studio анализатор стал доступен для нескольких других языков и платформ, поэтому вполне естественно, что в нашей поддержке всё больше людей спрашивают о возможности интеграции PVS-Studio с их любимой IDE.

Читать дальше →

Йо-хо-хо, и бутылка рому! Разбираем ошибки игрового движка Storm Engine

Время на прочтение11 мин
Количество просмотров4.5K

PVS-Studio – это инструмент статического анализа, позволяющий находить ошибки в исходном коде программ. В качестве знакомства с возможностями анализатора вашему вниманию предлагается результат проверки PVS-Studio исходного кода игрового движка Storm Engine.

Читать далее

Зачем PVS-Studio использует анализ потока данных: по мотивам интересной ошибки в Open Asset Import Library

Время на прочтение5 мин
Количество просмотров1.5K

PVS-Studio - Анализ потока данных
Анализ потока данных является неотъемлемой частью любого современного статического анализатора кода. Однако, со стороны, не очень понятно, что это и главное – зачем нужно. До сих пор некоторые ассоциируют статический анализ с поиском чего-то в коде по определённому шаблону. Поэтому время от времени мы пишем заметки, в которых демонстрируем, как та или иная технология, используемая в анализаторе PVS-Studio, помогает выявить очередную интересную ошибку. Сегодня как раз такая статья, в которой мы рассмотрим баг в одной из реализаций стандарта кодирования двоичных данных Base64.

Читать дальше →

Анализ кода проекта DeepSpeech или почему не стоит писать в namespace std

Время на прочтение14 мин
Количество просмотров3.9K
DeepSpeech – это открытый и свободно распространяемый движок распознавания речи, разрабатываемый компанией Mozilla. Движок имеет довольно высокую производительность и хорошие отзывы пользователей, и это делает код проекта интересной мишенью для проверки. Данная статья посвящена разбору ошибок, найденных в C++-коде проекта DeepSpeech.

image1.png

Читать дальше →

Повторная проверка Newton Game Dynamics статическим анализатором PVS-Studio

Время на прочтение10 мин
Количество просмотров1.9K

Рисунок 1

Недавно на просторах интернета мной был обнаружен физический движок Newton Game Dynamics. Зная, что в таких проектах обычно большой объём сложного кода, я подумал, что будет интересно проверить его статическим анализатором PVS-Studio. Мой энтузиазм ещё больше подстегнуло то, что мой коллега Андрей Карпов уже проверял данный проект в 2014 году, а значит, это ещё и хорошая возможность продемонстрировать развитие нашего анализатора за последние шесть лет. Также стоит отметить, что на момент написания статьи последний релиз Newton Game Dynamics датирован 27 февраля 2020 года, то есть данный проект тоже активно развивается последние 6 лет. Таким образом, надеюсь, что помимо нашей команды, данная статья будет интересна и разработчикам движка, которые смогут избавиться от некоторых багов и исправить свой код.
Читать дальше →

Интеграция PVS-Studio в PlatformIO

Время на прочтение4 мин
Количество просмотров2.4K
Picture 5

Недавно в среде разработки встраиваемых систем PlatformIO появилась поддержка PVS-Studio. В этой статье вы узнаете, как проверить свой код статическим анализатором на примере открытого проекта.

SARIF SDK и его ошибки

Время на прочтение7 мин
Количество просмотров2K

Picture 2


Сегодня у нас на тесте очередной качественный проект Microsoft, в котором мы всё же попытаемся героически поискать ошибки при помощи PVS-Studio. SARIF – аббревиатура от «Static Analysis Results Interchange Format», представляет собой стандарт (формат файла), предназначенный для взаимодействия и обмена результатами работы статических анализаторов с другими инструментами: IDE, комплексными инструментами проверки и анализа кода (например, SonarQube), системами непрерывной интеграции и т.п. SARIF SDK, соответственно, содержит инструментарий разработчика .NET для поддержки SARIF, а также вспомогательные файлы.
Читать дальше →

Почему летом так мало конференций?

Время на прочтение4 мин
Количество просмотров1.2K

Picture 2

Конечно, они проводятся, но их количество по сравнению с осенними и весенними очень невелико. Хочется изменить эту тенденцию, так как все в нашей команде уверенны, что летние мероприятия — это здорово. В этой короткой статье мы изложим мысли на эту тему и будем рады подискутировать.
Читать дальше →

Проверяем исходный код FlashDevelop с помощью PVS-Studio

Время на прочтение11 мин
Количество просмотров6.4K
Для проверки качества диагностик нашего статического анализатора и его рекламы мы регулярно анализируем проекты с открытым исходным кодом. Разработчики проекта FlashDevelop сами попросили нас проверить их продукт, что мы с радостью и сделали.

Введение


FlashDevelop — популярная среда разработки Flash-приложений, поддерживающая Action Script версии 2 и 3, Haxe, JavaScript, HTML, PHP, C#, и обладающая функционалом, присущим современным редакторам кода, например, автодополнение кода, встроенная поддержка svn, git, mercurial, шаблоны, сторонние плагины, темы подсветки синтаксиса и многое другое. Примечательно, что FlashDevelop использовали Fireaxis Games при разработке XCOM: Enemy Unknown.
Читать дальше →

Сортировка предупреждений статических анализаторов по приоритету при поиске и исправлении программных ошибок

Время на прочтение16 мин
Количество просмотров3.3K
За 2015 год в Национальной базе данных уязвимостей США (National Vulnerability Database, NVD) было зарегистрировано 6,488 новых программных уязвимостей, всего же в ней насчитывается 74,885 уязвимостей, найденных за период 1988-2016 гг. Инструменты статического анализа проверяют исходный код программ на наличие дефектов, в том числе потенциальных уязвимостей защиты, и выдают диагностические сообщения (предупреждения), в которых указывается местоположение предполагаемого дефекта, его характер, и, как правило, дополнительная контекстуальная информация. Достоверность таких предупреждений затем оценивается пользователем. Трудозатраты на проверку всех предупреждений и исправление всех подтвержденных ошибок вручную зачастую значительно превосходят бюджет и сроки проекта. По этой причине пользователи нуждаются в инструментах, которые позволили бы сортировать предупреждения по степени важности, тем самым определяя порядок их проверки. Настоящая статья посвящена проводимому нами исследованию данного вопроса с использованием классификационных моделей, призванных помочь специалистам по анализу и программистам в классификации предупреждений по приоритету и определении оптимального порядка исправления соответствующих ошибок.
Читать дальше →

Просмотр статистики количества ошибок в проекте, или «Ого, в PVS-Studio появились графики!»

Время на прочтение5 мин
Количество просмотров5.1K
Ошибки исправляют бодро!

Эта заметка будет интересна прежде всего менеджерам проектов и техническим руководителям, в командах которых используется анализатор кода PVS-Studio. В инструменте появилась возможность отслеживать эффективность использования статического анализатора в командах. Теперь вы можете в цифрах доказать босу, что анализатор купленный за несколько тысяч долларов приносит настоящую, видимую пользу. Но эта статья не про ROI, не пугайтесь.

Итак, какая проблема с инструментами статического анализа помимо того, что они стоят дорого? Не всегда команда, которая приобрела инструмент может похвастаться тем, что ошибки с его помощью правятся. А мы как никто другой заинтересованы в эффективном использовании нашего инструмента. Нас не устроит, если клиент просто купит лицензию и положит ее на полку. Ведь у нас более половины клиентов продлевают лицензии на следующий год. Поэтому наша задача показать эффективность использования нашего инструмента для тех, кто принимает решение о продлении лицензии.

Поэтому в PVS-Studio 5.27 появилась возможность строить графики количества ошибок, обнаруженных анализатором при проверке проекта. Идея этой возможности очень простая:
  1. Если вы хотите поправить все ошибки, которые выдает PVS-Studio, то со временем у вас график должен прийти к нулю.
  2. Если вы готовы мириться со старыми ошибками, но правите все новые, то у вас график не должен расти сильно вверх.
  3. В противном случае разработчики просто не используют PVS-Studio. К сожалению, и для нас (мы не получим продление лицензии), и для вас (вы зря потратили деньги на лицензию).
Прежде чем смотреть конкретные графики, буквально пара слов о технологии. Подробнее об этой возможности можно прочитать в документации.

Читать дальше →

IncrediBuild для проверки большого проекта с помощью PVS-Studio

Время на прочтение4 мин
Количество просмотров23K

PVS-Studio — статический анализатор, выявляющий ошибки в исходном коде приложений на языке C/C++. Подобно компилятору, анализатор обходит файл за файлом в каталоге с исходниками проекта, выполняя свою задачу. Но и без использования внешних инструментов, сборка некоторых проектов может длиться несколько часов. Статический анализ такого проекта будет занимать ещё больше времени. Для сборки крупных проектов, некоторые разработчики прибегают к использованию распределённой сборки с помощью инструмента IncrediBuild. В данной статье не будут рассмотрены детали интеграции PVS-Studio в IncrediBuild, а будет рассказано о проверке большого проекта, замерах времени и других интересных фактах.
Читать дальше →

Три интервью о статических анализаторах кода

Время на прочтение11 мин
Количество просмотров6.8K
Здравствуйте, уважаемые читатели!

Автор предлагает Вашему вниманию три интервью с представителями современных, крупных, интересных проектов о методике разработки программного обеспечения и, в частности, об использовании статических анализаторов кода. Автор надеется, что читателям будет интересно прочитать данный текст. Участники: Acronis, AlternativaPlatform, НПО-Эшелон.

С уважением,
Александр Тимофеев
Читать дальше →

Полезные материалы для C++ разработчиков от PVS-Studio

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3K

Мир C++ активно развивается, сообщество программистов обсуждает новые фичи, инструменты и лучшие практики. В этой статье собраны полезные материалы, которые стоит посмотреть каждому C++ разработчику.

Читать далее

PVS-Studio в разработке на Unity: новые специализированные диагностики

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1K

По сей день Unity остаётся популярен у тысяч разработчиков. На этом движке созданы многие популярные игры, такие как V Rising, Beat Saber, Hearthstone, Genshin Impact и прочие. Насколько полезен был бы анализатор PVS-Studio разработчикам таких проектов? Какие ошибки и возможности для оптимизации кода он мог бы помочь найти? Давайте узнаем!

Читать далее

Java, Taint и SAST: что это и зачем, и причём здесь ГОСТ 71207

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.3K

На Java пишется огромное количество серверного кода. Отсюда следует, что написанные на ней веб-приложения должны быть устойчивы к специальным уязвимостям. И эта небольшая статья как раз про один из способов борьбы с ними — SAST. И ещё про то, что такое taint-анализ и как он во всём этом участвует.

Читать далее

Информация

Сайт
pvs-studio.ru
Дата регистрации
Дата основания
2008
Численность
51–100 человек
Местоположение
Россия
Представитель
Андрей Карпов