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

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

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

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

Читать далее

Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

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

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам.

Читать далее

Как мы баг в PVS-Studio искали или 278 Гигабайтов логов

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

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


1005_StoriesFromSupport_ru/image1.png


Небольшое предисловие


Наш коллега уже рассказывал про нашу техническую поддержку. Но всегда интересно послушать какие-то истории, и они у нас есть.


Если хочется программистской жести, то можете сразу переходить к следующему разделу. Если же хочется в целом познакомиться, как мы работаем, то продолжайте читать :). Также вы можете посмотреть юмористический доклад о поддержке С++ программистов.

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

0, 1, 2, Фредди забрал Blender

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

0, 1, 2, Фредди забрал Blender


Эта статья могла бы получить название "Как PVS-Studio защищает от поспешных правок кода, пример N7". Однако так именовать статьи становится скучновато. Поэтому сейчас вы узнаете, причём здесь Фредди Крюгер.

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

Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0

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

PVS-Studio: потому, что могу
Компиляторы развиваются и выдают всё больше предупреждений. Остаются ли преимущества от использования статических анализаторов кода, таких как PVS-Studio? Да, так как анализаторы тоже развиваются. Перед вами статья о том, как PVS-Studio находит баги даже в компиляторе.

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

Обзор нововведений в C# 11

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

C# 11 выходит уже совсем скоро, так что пора детально изучить новые особенности, которые появятся в языке. И хотя их немного, среди них есть довольно интересные: обобщённая математика, исходные строки, модификатор required, параметры типа в атрибутах и прочее.

Читать далее

Как PVS-Studio защищает от поспешных правок кода, пример N6

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

Программисты часто допускают ошибки в коде по невнимательности или из-за спешки. Если вам интересно, как можно быстро находить такие ошибки, то мы рады приветствовать вас в очередной статье из цикла "Как PVS-Studio защищает от поспешных правок кода". Сегодня мы обратили внимание на проект FreeCAD.

Читать далее

PVS-Studio 7.21: GitLab Code Quality, Unreal Engine

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

1000_Release_7_21_ru/image1.png


Вышел новый релиз PVS-Studio – 7.21. В этой заметке описали основные улучшения анализатора и собрали материалы от нашей команды, вышедшие в последнее время: статьи, опросы и записи докладов с конференций.

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

Топ-10 докладов на С++ конференциях 2019-2022 года

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

В мире проходит множество интересных конференций по программированию. К сожалению, у нас нет телепорта, чтобы посещать каждую из них и слушать все интересующие нас доклады. Но зато мы можем посмотреть их на YouTube!

Читать далее

Есть ли жизнь без RTTI: пишем свой dynamic_cast

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

В современном С++ осталось не так много вещей, которые не подходят под парадигму "Не плати за то, что не используешь". Одна из них – dynamic_cast. В рамках данной статьи мы разберёмся, что с ним не так, а когда поймём – попробуем предложить альтернативу.

Читать далее

Планируете взяться за .NET MAUI? Будьте готовы к приключениям с NullReferenceException

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

.NET Multi-platform App UI – фреймворк, который пишут профессионалы. Тем не менее, код некоторых его функций выглядит так, будто разработчики забыли о последствиях разыменования нулевых ссылок.

Читать далее

Особенности реализации List в C#

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

List является одной из самых популярных коллекций в C#. Давайте разберёмся в некоторых особенностях работы с ним и посмотрим на внутреннюю реализацию его отдельных частей.

Читать далее

Разбор ошибок в игровом движке Stride

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

Stride – это мощный, бесплатный и активно развивающийся игровой движок, реализованный на C#. Он вполне может стать альтернативой Unity, но насколько качественный исходный код Stride? Узнаем это с помощью статического анализатора PVS-Studio.

Читать далее

Интервью с Джейсоном Тернером, одним из ведущих подкаста «CppCast»: история и причины закрытия проекта

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

В этой статье мы поговорим с Джейсоном Тернером, одним из основателей CppCast. CppCast – это первый С++ подкаст, основанный С++ разработчиками. Начиная с 2015 года каждую неделю на CppCast выходили подкасты с участием различных гостей, среди которых были и спикеры С++ конференций, и авторы библиотек, писатели, члены комитета ISO, и многие другие. В этой статье мы расскажем историю CppCast и почему ведущие решили закрыть проект в 2022 году. Мы расскажем об одном из самых занимательных и полезных каналов на YouTube о программировании и поделимся с вами советами по С++.

Читать далее

Боремся с 16-летним легаси-кодом, или исправляем C и C++ front-end в PVS-Studio

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

В 2022 году статическому анализатору PVS-Studio для языков C и C++ исполняется 16 лет. Если бы анализатор был человеком, то он бы уже заканчивал школу. Это очень старый проект, и система типов в нем не потерпела кардинальных изменений практически с самого начала. В этой статье мы посмотрим, как работал анализатор всё это время и расскажем, что было не так, и как мы начали это исправлять.

Читать далее

Сортировки в C#: OrderBy.OrderBy или OrderBy.ThenBy? Разбираемся, что эффективнее и почему

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

Предположим, есть задача: нужно отсортировать коллекцию по нескольким ключам. В C# это можно сделать с помощью вызовов OrderBy().OrderBy() или OrderBy().ThenBy(). Но в чём разница между этими вызовами? Чтобы ответить на этот вопрос, придётся покопаться в исходниках.


0991_OrderBy_ThenBy_ru/image1.png


Статья состоит из трёх основных разделов:


  • Предыстория. Для тех, кто любит затравки. История о том, откуда вообще возникла идея провести исследование и изучить, в чём разница между OrderBy().OrderBy() и OrderBy().ThenBy().
  • Сравнение эффективности. Изучаем отличия типов сортировок с точки зрения производительности и потребления памяти.
  • Отличия в поведении. Погружаемся в исходники .NET и разбираемся, из-за чего возникают отличия в эффективности работы рассматриваемых способов сортировки.
Читать дальше →

Проверка JavaScript-движка Rhino, или как встретились единорог с носорогом

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

Имеется большое разнообразие языков программирования, но больше всего наши пользователи хотят, чтобы анализатор PVS-Studio поддержал один из самых популярных языков – Javascript. Одним из проектов, который можно использовать для написания статического анализатора JavaScript, является движок Rhino. В данной статье мы проведём анализ исходного кода Rhino при помощи PVS-Studio.

Читать далее

ML.NET: можно ли доверять машинному обучению Microsoft?

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

В 2018 году Microsoft разработали ML.NET – фреймворк машинного обучения для .NET разработчиков. За прошедшее время эта библиотека претерпела существенные изменения и обзавелась новыми функциями для выявления закономерностей в данных. Посмотрим, как это отразилось на качестве её исходного кода.

Читать далее

Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?

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

Современные приложения почти всегда используют сторонние библиотеки. Если библиотека содержит уязвимость, то уязвимым может оказаться и использующее её приложение. Но как определить наличие таких проблемных зависимостей?

Читать далее

Соберёмся? Вторая проверка проекта MSBuild

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

MSBuild – популярная сборочная платформа с открытым исходным кодом от Microsoft, которую используют разработчики по всему миру. В далёком 2016 году мы уже проверяли проект при помощи PVS-Studio и нашли несколько подозрительных мест. Давайте посмотрим, что удалось обнаружить в коде MSBuild при повторной проверке.

Читать далее

Информация

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