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

Ода одной диагностике и ещё парочке, или проверка Jellyfin

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

Jellyfin — это бесплатный медиасервер с открытым исходным кодом, является альтернативой Emby и Plex. В этой статье мы рассмотрим диагностику, у которой было больше всего срабатываний в коде Jellyfin. И ещё несколько ошибок проекта.

Читать далее

Как обновить библиотеку и утонуть в задаче. Обновление Roslyn и PVS-Studio 7.34

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

Ежегодно Microsoft выпускает новую версию .NET. Это большое событие, к которому мы выпускаем версию PVS-Studio с поддержкой нововведений. Сегодня речь пойдёт про боль PVS-Studio при обновлении Roslyn — неотъемлемой части .NET.

Читать далее

Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода

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

Ищем баг
В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.

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

Декрет в IT: другие навыки, страхи, преимущества

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

Декретный отпуск для IT-сотрудницы — это большое приключение и испытание.
Как увидеть в таком отпуске ценность с точки зрения профессионального развития? Как изменится привычный уклад жизни? Что ожидать? Как подготовиться?
Отходим от привычных тем и заглядываем за завесу современного материнства!

Читать далее

PVS-Studio помогает оптимизировать проекты на Unity Engine

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

Недавно анализатор PVS-Studio начал выдавать предупреждения о возможностях оптимизации кода в проектах под Unity Engine. Какие они, эти предупреждения? Как анализатор понимает, какой код стоит оптимизировать? Почему это сделано именно для Unity? Ответы в заметке.

Читать далее

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

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

1053_60_cpp_antipatterns_ru/image2.png


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

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

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

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

1053_60_cpp_antipatterns_ru/image2.png


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

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

Личный кабинет PVS-Studio

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

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

Читать далее

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

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

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

Читать далее

Что там у PVS-Studio c покрытием Toyota ITC Benchmark?

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

Toyota ITC Benchmark – это набор синтетических тестов для C и C++, состоящий приблизительно из 650 примеров и предназначенный для тестирования анализаторов кода. Данная статья ответит на вопрос: "Насколько хорошо статический анализатор PVS-Studio покрывает Toyota ITC Benchmark?".

Читать далее

О том, как мы с сочувствием смотрим на вопрос на StackOverflow, но молчим

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

О том, как мы с сочувствием смотрим на вопрос на StackOverflow, но молчим
Иногда на сайте stackoverflow.com мы видим очередной вопрос, как искать баги определённого типа. И знаем, что решением проблемы может стать использование PVS-Studio. К сожалению, мы вынуждены молчать, иначе ответ будет интерпретирован как неприкрытая реклама. Это статья про наши душевные муки, где рассмотрен конкретный пример такой ситуации.

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

Проверка коллекции header-only C++ библиотек (awesome-hpp)

Время на прочтение17 мин
Количество просмотров5K
PVS-Studio и Awesome hpp

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

Проверка кода XMage и почему недоступны специальные редкие карточки для коллекции Dragon's Maze

Время на прочтение13 мин
Количество просмотров2.5K
image1.png

XMage — клиент-серверное приложение для игры в Magic: The Gathering (MTG). XMage начал развиваться еще в начале 2010 года. За это время было выпущено 182 релиза, набралась целая армия контрибьюторов, и проект до сих пор активно развивается. Отличный повод поучаствовать и нам в его развитии! Поэтому сегодня единорог из PVS-Studio проверит кодовую базу XMage, и кто знает, может и схлестнется с кем-нибудь в бою.
Читать дальше →

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

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

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

Начало коллекционирования ошибок в функциях копирования

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

memcpy

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

Beta-тест C# анализатора PVS-Studio на Linux и macOS

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

Picture 1

Всё больше пользователей C# анализатора PVS-Studio интересуются возможностью его использования для проверки C# кода на Linux и macOS. И сегодня у нас хорошие новости.
Читать дальше →

Топ 10 ошибок в проектах Java за 2019 год

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


2019 год подходит к концу, и команда PVS-Studio подводит итоги уходящего года. В начале 2019 года мы расширили возможности анализатора, поддержав язык Java. Поэтому список наших публикаций про проверку открытых проектов пополнился обзорами Java проектов. За год было найдено немало ошибок, и мы решили подготовить Top 10 самых интересных из них.
Читать дальше →

Azure SDK for .NET: история о непростом поиске ошибок

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

Picture 2

Когда мы решили поискать ошибки в проекте Azure SDK for .NET, то были приятно удивлены его размером. «Три с половиной миллиона строк кода», — приговаривали мы, изучая статистику проекта. Это сколько же там всего можно найти. Но, увы и ах. Проект оказался с секретом. Какова же особенность проекта и как прошла его проверка — читайте в этой статье.
Читать дальше →

Asterisk: PVS-Studio заинтересовался телефонией

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


Asterisk — свободное решение компьютерной телефонии с открытым исходным кодом от компании Digium. Приложение работает на таких операционных системах, как Linux, FreeBSD, OpenBSD, Solaris. Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками.

В данной статье будут рассмотрены результаты проверки Asterisk, полученные с помощью PVS-Studio 5.18.

Проект, по всей видимости, проверяется анализатором Coverity, о чём свидетельствуют комментарии вида:

/* Ignore check_return warning from Coverity for ast_exists_extension below */

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

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

Как NASA ошиблись в исходном коде планеты

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

Баги в коде — явление нередкое, но сегодня мы исследуем не просто ошибки, а настоящие космические баги! Что скрывает проект, созданный в недрах NASA? Готовьте свои шапочки из фольги!

Поехали!

Информация

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