Обновить
291.85
PVS-Studio
Статический анализ кода для C, C++, C# и Java
Сначала показывать

Единороги врываются в RTS: анализируем исходный код OpenRA

Время на прочтение17 мин
Охват и читатели3.4K
image1.png

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

Статический анализ – от знакомства до интеграции

Время на прочтение9 мин
Охват и читатели25K
Устав от нескончаемого code review или отладки, временами задумываешься, как бы упростить себе жизнь. И немного поискав, ну или случайно наткнувшись, можно увидеть волшебное словосочетание: "Статический анализ". Давайте посмотрим, что это такое и как он может взаимодействовать с вашим проектом.

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

Под капотом PVS-Studio для Java: разработка диагностик

Время на прочтение8 мин
Охват и читатели2.2K

Для разнообразия сегодня немного расскажем про процесс разработки и доработки диагностических правил для PVS-Studio Java. Посмотрим, почему старые срабатывания анализатора не слишком сильно плавают от релиза к релизу, а новые – не слишком сумасшедшие. А ещё немного заспойлерим "чего там у джавистов в планах" и покажем парочку красивых (и не очень) ошибок, найденных с помощью диагностик из следующего релиза.
Читать дальше →

PVS-Studio: Анализ pull request-ов в Azure DevOps при помощи self-hosted агентов

Время на прочтение12 мин
Охват и читатели1.3K


Статический анализ кода показывает наибольшую эффективность во время внесения изменений в проект, поскольку ошибки всегда сложнее исправлять в будущем, чем не допустить их появления на ранних этапах. Мы продолжаем расширять варианты использования PVS-Studio в системах непрерывной разработки и покажем, как настроить анализ pull request-ов при помощи self-hosted агентов в Microsoft Azure DevOps, на примере игры Minetest.
Читать дальше →

Анализ merge request'ов в GitLab с помощью PVS-Studio для C#

Время на прочтение8 мин
Охват и читатели2.9K
image1.png

Любите GitLab и не любите ошибки? Хотите повысить качество исходного кода? Тогда вы попали по адресу. Сегодня мы расскажем, как настроить C# анализатор PVS-Studio для проверки merge request'ов. Всем единорожного настроения и приятного чтения.
Читать дальше →

PVS-Studio и Continuous Integration: TeamCity. Анализ проекта Open RollerCoaster Tycoon 2

Время на прочтение8 мин
Охват и читатели1.6K

Один из самых актуальных сценариев использования анализатора PVS-Studio — его интеграция с CI системами. И хотя анализ проекта PVS-Studio практически из-под любой continuous integration системы можно встроить всего в несколько команд, мы продолжаем делать этот процесс ещё удобнее. В PVS-Studio появилась поддержка преобразования вывода анализатора в формат для TeamCity — TeamCity Inspections Type. Давайте посмотрим, как это работает.
Читать дальше →

Код игры Command & Conquer: баги из 90-х. Том второй

Время на прочтение13 мин
Охват и читатели12K
image1.png

Американская компания Electronic Arts Inc (EA) выложила в открытый доступ исходный код игр Command & Conquer: Tiberian Dawn и Command & Conquer: Red Alert. В исходном коде было обнаружено несколько десятков ошибок с помощью анализатора PVS-Studio, поэтому встречайте продолжение описания найденных дефектов.
Читать дальше →

PVS-Studio теперь в Compiler Explorer

Время на прочтение4 мин
Охват и читатели5.6K
image1.png

Совсем недавно произошло знаменательное событие: PVS-Studio появился в Compiler Explorer! Теперь вы можете быстро и легко проанализировать код на наличие ошибок прямо на сайте godbolt.org (Compiler Explorer). Это нововведение открывает большое количество новых возможностей – от утоления любопытства по поводу способностей анализатора до возможности быстро поделиться результатом проверки с другом. О том, как использовать эти возможности, и пойдёт речь в этой статье. Осторожно – большие гифки!
Читать дальше →

PVS-Studio впечатлен качеством кода Abbyy NeoML

Время на прочтение4 мин
Охват и читатели6.2K
image1.png

На днях компания ABBYY опубликовала исходный код своего фреймворка NeoML. Нам предложили проверить эту библиотеку с помощью PVS-Studio. Это интересный проект с точки зрения анализа, так что мы не стали откладывать его в долгий ящик. Чтение этой статьи не займет у вас много времени, так как проект оказался высокого качества :).
Читать дальше →

Как анализатор PVS-Studio стал находить ещё больше ошибок в проектах на Unity

Время на прочтение7 мин
Охват и читатели2.4K
image1.png

Разрабатывая статический анализатор PVS-Studio, мы стараемся развивать его в различных направлениях. Так, наша команда работает над плагинами для IDE (Visual Studio, Rider), улучшением интеграции с CI и т. д. Увеличение эффективности анализа проектов под Unity также является одной из наших приоритетных целей. Мы считаем, что статический анализ позволит программистам, использующим этот игровой движок, повысить качество своего исходного кода и упростить работу над любыми проектами. Поэтому хотелось бы увеличить популярность PVS-Studio среди компаний, занимающихся разработкой под Unity. Одним из первых шагов в реализации данной задумки стало написание нами аннотаций для методов, определённых в движке. Это позволяет контролировать корректность кода, связанного с вызовами аннотируемых методов.
Читать дальше →

Как внедрить статический анализатор кода в legacy проект и не демотивировать команду

Время на прочтение9 мин
Охват и читатели5.1K

PVS-Studio охраняет сон программиста

Попробовать статический анализатор кода легко. А вот, чтобы внедрить его, особенно в разработку большого старого проекта, потребуется умение. При неправильном подходе анализатор может добавить работы, замедлить разработку и демотивировать команду. Давайте кратко поговорим, как правильно подойти к интеграции статического анализа в процесс разработки и начать его использовать как часть CI/CD.
Читать дальше →

Анализатор PVS-Studio: выявления потенциальных проблем совместимости Java SE API

Время на прочтение9 мин
Охват и читатели1.5K

Рисунок 9

2019 был очень насыщенным годом в плане конференций. Наша команда могла уезжать на целые недели в командировки. А как известно, конференция – время делиться знаниями. Помимо того, что мы выступали с докладами и много интересного рассказывали на нашем стенде, мы также узнавали много нового от общения с участниками конференции и от докладчиков. Так вот на осенней конференции Joker 2019 доклад от Dalia Abo Sheasha «Migrating beyond Java 8» вдохновил нас на реализацию нового диагностического правила, которое позволяет выявлять несовместимости в Java SE API между разными версиями Java. Об этом и пойдет речь.
Читать дальше →

Код игры Command & Conquer: баги из 90-х. Том первый

Время на прочтение13 мин
Охват и читатели12K
image1.png

Американская компания Electronic Arts Inc (EA) выложила в открытый доступ исходный код игр Command & Conquer: Tiberian Dawn и Command & Conquer: Red Alert. Этот код должен помочь игровым сообществам разрабатывать моды и карты, создавать пользовательские юниты и настраивать логику игрового процесса. У всех нас появилась уникальная возможность окунуться в историю разработки, которая очень сильно отличается от современной. Тогда не было сайта StackOverflow, удобных редакторов кода и мощных компиляторов. А ещё тогда не было статических анализаторов, и первое, с чем столкнётся сообщество, — это сотни ошибок в коде. Но с этим-то и поможет команда PVS-Studio, указав на места этих ошибок.
Читать дальше →

Как найти ошибки в C# проекте, работая под Linux и macOS

Время на прочтение20 мин
Охват и читатели3K

Picture 8

PVS-Studio – известный статический анализатор кода, позволяющий найти множество каверзных ошибок, скрытых в исходниках. Недавно завершился бета-тест новой версии, в которой появилась возможность анализа C# проектов под Linux и macOS. Кроме того, теперь анализатор можно интегрировать с кроссплатформенной IDE от JetBrains – Rider. Данная статья позволит познакомиться с этими возможностями на примере проверки open source проекта RavenDB.
Читать дальше →

АНБ, Ghidra и единороги

Время на прочтение12 мин
Охват и читатели4.2K

АНБ, Ghidra и единороги

На этот раз взгляд команды PVS-Studio привлекла Ghidra — большой и злой фреймворк для реверс-инжиниринга, с помощью которого можно анализировать различные бинарные файлы и делать с ними всякие страшные вещи. Наиболее интересно в нём даже не то, что он бесплатен для использования или отлично расширяется плагинами, а то, что написали его в АНБ и выложили исходники на GitHub для всех желающих. С одной стороны, кажется, что у АНБ-то точно достаточно ресурсов для поддержания кодовой базы в чистоте. А с другой, не очень знакомые с ней новые контрибьюторы могли за прошедшее время случайно добавить незамеченных багов. Поэтому, вооружившись статическим анализом, мы решили поискать слабые места в этом проекте.
Читать дальше →

Код в одну строку или проверка Nethermind с помощью PVS-Studio C# для Linux

Время на прочтение14 мин
Охват и читатели2.6K

Рисунок 1

Данная статья приурочена к старту бета-теста PVS-Studio C# для Linux, а также плагина для Rider. По такому прекрасному поводу с помощью данных инструментов была проведена проверка исходного кода продукта Nethermind и в данной статье мы посмотрим на интересные, а иногда и забавные ошибки.
Читать дальше →

Ошибка с директивой #line в компиляторе Visual C++

Время на прочтение3 мин
Охват и читатели2.5K
image1.png

Директива #line добавляется препроцессором и затем может быть использована для понимания, к какому файлу и строке относится тот или иной фрагмент кода в препроцессированном файле. Директива #line указывает инструментам, работающим с кодом, изменить внутренний хранимый номер строки и имя файла компилятора на заданный номер строки. Следующие строки уже будут отсчитывать относительно заданной позиции. Явное препроцессирование, в основном, используется для отладки или различными генераторами. В любом случае, ошибка в таком функционале может приводить к разным негативным последствиям. Одна из таких проблем возникла у пользователя PVS-Studio в Visual Studio 2019.
Читать дальше →

Как забраться на дерево

Время на прочтение20 мин
Охват и читатели3.3K

Picture 2

Точнее, как с него спуститься. Но обо всем по порядку. Эта статья немного выбьется из привычного формата статей от PVS-Studio. Мы часто пишем о проверке других проектов, но почти никогда не приоткрываем дверь нашей внутренней кухни. Пришло время это исправить и рассказать о том, как анализатор устроен изнутри. Точнее, о наиболее важной из его частей – синтаксическом дереве. Речь в статье пойдет о той части PVS-Studio, которая относится к языкам C и C++.
Читать дальше →

И снова про embedded: ищем баги в проекте Embox

Время на прочтение12 мин
Охват и читатели2.3K

Рисунок 2

Embox – это кросс-платформенная мультизадачная операционная система реального времени для встраиваемых систем. Она рассчитана на работу в условиях невысоких вычислительных ресурсов и позволяет запускать Linux-приложения на микроконтроллерах без использования самого Linux. Конечно, как и любые другие приложения, Embox баги тоже не обошли стороной. Данная статья посвящена разбору ошибок, найденных в коде проекта Embox.

Начало бета-тестирования плагина для Rider и PVS-Studio C# для Linux / macOS

Время на прочтение1 мин
Охват и читатели1.4K

Picture 1

В связи с чередой различных событий начало бета-тестирования плагина для Rider и C# анализатора для Linux / macOS немного задержалось. Однако мы рады сообщить, что этот день настал – сегодня мы запускаем бета-тест.
Читать дальше →

Информация

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