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

PVS-Studio — приглашаем послушать и посмотреть

Время на прочтение1 мин
Количество просмотров4.4K
PVS-Studio PHDays, SDCast
Так получилось, что на днях Андрей Карпов принял участие в Positive Hack Days и выступил там с докладом. А Евгений Рыжков стал гостем SDCast'а, и в результате чего получился 40-минутный подкаст. В обоих случаях речь идёт о статическом анализе кода вообще, и анализаторе PVS-Studio в частности. Если Вам интересна эта тематика, то приглашаю под habracut, где можно узнать чуть больше деталей и увидеть ссылки на эти материалы.
Читать дальше →

PVS-Studio и враждебная среда обитания

Время на прочтение5 мин
Количество просмотров7.1K
враждебная среда обитания
Очередная история, как непросто программам взаимодействовать с внешним миром. На первый взгляд, у статического анализатора никаких проблем быть не должно. Он получает на вход файлы, дополнительную информацию и должен сгенерировать отчёт. Но как всегда, дьявол кроется в деталях.

Я считаю PVS-Studio очень качественным продуктом. Мы можем почти в любой день сделать и выложить дистрибутив. У нас используется очень большое количество автоматизированных тестов различного уровня и типов. Вот описание некоторых из них: "Как мы тестируем анализатор кода". Сейчас их стало больше. Например, теперь для статического анализа мы используем не только свой собственный анализатор, но и Clang. Если исправленная версия прошла все тесты, значит ее можно смело выдавать пользователям.
Читать дальше →

На защите GameDev'a: статический анализ и Unity

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.2K

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

Читать далее

Учимся рефакторить код на примере багов в TDengine, часть 2: макрос, пожирающий стек

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.8K

Макрос пожирает стек


Проверяя код проекта TDengine с помощью PVS-Studio, можно встретить код с запахом, канонические ошибки и опечатки. Многое из этого можно избежать, если изначально аккуратно оформлять код, делать логику простой и избегать макросов. Давайте рассмотрим некоторые фрагменты кода и подумаем, как можно провести его рефакторинг так, чтобы багам просто не было там места.

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

Грязный код — надёжное хранилище ошибок. Теория разбитых окон

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.2K

Многие знают, что чистота кода влияет на его поддержку и стабильность, но что насчёт ошибок? В этой статье мы на реальных примерах рассмотрим, как грязный код может стать источником проблем, а также найдём способы их решить.

Читать далее

Поиск потенциальных уязвимостей в коде, часть 2: практика

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров1.9K

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

Читать далее

Как сторонние библиотеки меняют правила анализа кода

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

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

Читать далее

Сериализация в Java. Давайте разбираться

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров7.2K

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

Читать далее

PVS-Studio и тренды 2023 года. Что волнует наших клиентов?

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

Начало года — традиционное время подводить итоги работы, делать выводы и строить планы на текущий и последующие годы. В этой статье речь пойдёт о том, какие открытия сделала наша компания в 2023, какие задачи стоят перед российским IT-бизнесом, и как PVS-Studio может помочь решить какую-то их часть. Самые популярные темы прошлого года для общений на конференциях и в переписке освещены в этой статье в формате "вопрос-ответ".

Читать далее

Конкурс для C++ программистов и их любимых багов

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

Конкурс для C++ программистов и их любимых багов

Привет всем крутым C и С++ разработчикам! Команда PVS-Studio на связи. Новый год не за горами, поэтому мы подготовили вам новый конкурс с призами!

Читать далее

Игоры! Как пишут код для SDL (+ интервью с создателем)

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

Джек Лондон как-то написал: "Не стоит ждать вдохновения, за ним надо гоняться с дубинкой". Если речь идёт о создании игр, то проект SDL вполне себе может послужить такой дубинкой. Но как он сделан сам?

Почитаем!

60 антипаттернов для С++ программиста, часть 1 (совет 1 — 5)

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

1053_60_cpp_antipatterns_ru/image2.png


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

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

PVS-Studio 7.23: плагин Qt Creator 9 и не только

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

Вышел новый релиз PVS-Studio — 7.23. В нём мы улучшили поддержку Qt Creator, увеличили стабильность работы PVS-Studio Java, решили проблемы при анализе проектов, использующих NMake, добавили ряд новых диагностик и многое другое. Подробности в этой заметке.

Читать далее

Как увеличилась производительность LINQ в .NET 7?

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

В новой версии .NET улучшилась производительность методов Min, Max, Average и Sum для массивов и списков. Как вы думаете, во сколько раз увеличилась скорость их выполнения? В 2 раза, в 5? Нет, они стали гораздо быстрее. Посмотрим, как этого удалось достичь.

Читать далее

Как Apple и другие крупные компании настиг программный баг

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

Сегодня мы отобрали свежие случаи программных ошибок, чтобы вы могли немного отвлечься и возможо узнать что-то новенькое. Если вам интересно узнать, как программисту удалось взломать Интернет по всему миру, удалив крошечный фрагмент кода, и прочитать про другие неочевидные на первый взгляд ошибки, то эта статья для вас!

Читать далее

Хватит терять клиентов! Или как разработчику тестировать сайт, на примере PVS-Studio. Часть 1

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

Сайт с багами – горе для бизнеса. Всего одна 404-я или 500-я ошибка может лишить вашу компанию солидной суммы денег и хорошей репутации. Но есть способ избежать этого: тестировать сайт. О том, как это сделать, расскажет данная статья. Прочитав её, вы узнаете, как тестировать код на Django, создать своего пользователя-тестировщика и много чего еще. Добро пожаловать под кат.

Читать далее

Лучшие срабатывания статического анализатора

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

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

Читать далее

Опыт команды PVS-Studio: повышение производительности C++ анализатора на Windows при переходе на Clang

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

С самого своего начала C++ анализатор PVS-Studio для Windows (тогда еще Viva64 версии 1.00 в 2006 году) собирался компилятором MSVC. С выходом новых релизов C++ ядро анализатора научилось работать на Linux и macOS, и структура проекта была переведена на использование CMake. Но под Windows сборка по-прежнему происходила с помощью компилятора MSVC. 29 апреля 2019 года разработчики Visual Studio объявили о включении в свою среду разработки набора утилит LLVM и компилятора Clang. И сейчас у нас наконец дошли руки, чтобы попробовать его в действии.

Читать далее

Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#

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

Будучи разработчиками программного обеспечения, мы всегда хотим, чтобы написанное нами ПО работало быстро. Использование оптимального алгоритма, распараллеливание, применение различных техник оптимизации – мы будем прибегать ко всем известным нам средствам, дабы улучшить производительность софта. К одной из таких техник оптимизации можно отнести и так называемое интернирование строк. Оно позволяет уменьшить объём потребляемой процессом памяти, а также значительно сокращает время, затрачиваемое на сравнение строк. Однако, как и везде в жизни, необходимо соблюдать меру – не стоит использовать интернирование на каждом шагу. Далее в этой статье будет показано, как можно обжечься и создать своему приложению неочевидный bottleneck в виде метода String.Intern.

Читать далее

Как PVS-Studio ELKI в январе проверяли

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

Если вам кажется, что Новый год наступил только вчера, и вы не заметили, как прошла уже большая половина января – значит, все это время вы были заняты поиском трудноуловимых багов в поддерживаемом вами коде. А также это значит, что наша статья именно для вас. Мы, PVS-Studio, проверили open source проект ELKI, чтобы показать вам, какие ошибки могут встретиться в коде, как хитро там они могут спрятаться, и как можно с этим бороться.


0111_ELKI_ru/image1.png

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

Информация

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