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

Использование расширения VS Code «PVS-Studio» для эффективной борьбы с ошибками в C# коде

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

VS Code — это знакомый многим редактор кода, главная особенность которого — возможность дополнить свой функционал с помощью множества полезных расширений. Одно из них теперь помогает эффективнее находить ошибки не только в C, С++, но и в C# коде.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Microsoft PowerToys: Король GitHub среди C# проектов с C++ ошибками

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

Microsoft PowerToys – это мощный и полезный инструмент. Он не только упрощает некоторые сценарии работы с Windows, но и привносит новые. А еще он занимает первую строчку топа по звездам на GitHub среди C# проектов. Посмотрим, насколько хорошо пишут код его разработчики, и узнаем, при чём здесь C++!

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии14

Проверяем YTsaurus. Доступность, надёжность, open source

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

В этой статье мы расскажем вам о результатах проверки кода проекта YTsaurus статическим анализатором PVS-Studio и разберём найденные ошибки. Уже больше полугода назад YTsaurus — мощная BigData-система — стала Open Source. Её разработка и использование направлены на расширение инфраструктуры и развитие бизнеса в сфере IT и коммуникаций. Последнее время YTsaurus — частая тема для обсуждения. А судя по статистике на GitHub, проект продолжает набирать популярность. Всё это делает его интересным объектом для исследования.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Опечатки, нулевые указатели и коварный таб: 33 фрагмента в библиотеке GTK

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

Использование TAB в строковом литерале


GTK – популярный фреймворк с открытым исходным кодом для создания графических интерфейсов, который интересно проверять с помощью анализатора PVS-Studio. Тем более, что предыдущую проверку мы делали около 3 лет назад, а значит, наверняка найдём в нём новые ошибки.


Очень не хотелось частично повторять введение из прошлой статьи "Выявляем опечатки в проекте GTK 4 с помощью PVS-Studio", но подозреваю, что далеко не все читатели знакомы с GTK. Поэтому вкратце: библиотека позволяет кроссплатформенно реализовывать графический пользовательский интерфейс. Полностью бесплатна и имеет открытый исходный код, лицензированный под GNU GPL, что позволяет использовать её в любых проектах (даже коммерческих).

Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии6

Интервью с разработчиками мультитула для хакеров и пентестеров Flipper Zero

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

Flipper Zero — карманный "мультитул" для гиков, сокровище для пентестеров, ваш собственный кибер-зверёк. Возможности девайса ограничиваются только вашим воображением и сноровкой.

В этой статье мы пообщаемся с разработчиками устройства Flipper Zero. Поклонникам девайса предлагается нырнуть вглубь истории создания и технических возможностей. Тем, кто впервые слышит про Флиппер — познакомиться с проектом.

Читать далее
Всего голосов 64: ↑58 и ↓6+52
Комментарии34

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

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

Уже середина осени, а это значит, что новая версия C# на пороге. Самое время узнать, какие изменения настигнут язык совсем скоро. Хоть количество нововведений в этот раз уступает предыдущим релизам, интересных среди них немало.

Читать далее
Всего голосов 46: ↑46 и ↓0+46
Комментарии63

FreeCAD и C++ код с неопределённым поведением для медитации

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

PVS-Studio, FreeCAD, неопределённое поведение, C++


Изучая код проекта с помощью статического анализатора, иногда задаёшься вопросом: "Как возникла ошибка и почему её до сих пор не заметили?" Хотите посмотреть пример? Тогда приглашаем познакомиться с этой статьёй.

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии22

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Пять забавных странностей в коде Entity Framework Core

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

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

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии5

Поиск ошибок в проектах на основе Unreal Engine

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

Единорог Коди (PVS-Studio) коллекционирует баги, специфичные для Unreal Engine проектов


В статическом анализаторе PVS-Studio начали появляться диагностические правила для выявления багов, специфичных для Unreal Engine проектов. Однако без сообщества разработчиков игр здесь не обойтись. Напишите нам про типовые паттерны ошибок, поиск которых хотелось бы автоматизировать.


Анализатор PVS-Studio хорошо выявляет распространённые паттерны опечаток, логические ошибки, потенциальные уязвимости и многое другое. Теперь взор команд, разрабатывающих PVS-Studio, обратился в сторону Unreal Engine.

Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Ошибка настолько проста, что программисты её не замечают

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

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

Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии80

Проверка компилятора GCC 13 с помощью PVS-Studio

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

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

Читать далее
Всего голосов 25: ↑24 и ↓1+23
Комментарии11

Ква! Как писали код во времена Quake

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

Как говорил Джон Кармак: "Фокус — это умение определить, на что вы не будете тратить время". Так давайте не будем тратить время на аннотацию и приступим к анализу кода легендарной Quake World.

Погнали!
Всего голосов 34: ↑31 и ↓3+28
Комментарии33

PVS-Studio vs CodeLite: битва за идеальный код

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Распространённые паттерны опечаток при программировании

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

Распространённые паттерны опечаток при программировании


Есть бесконечное количество способов ошибиться при написании кода. Однако иногда можно заметить явные интересные закономерности, как и где ошибаются программисты. Поговорим о коде, который "притягивает" опечатки.


На чём основаны наблюдения


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


Рассматривая все эти ошибки, я постепенно замечаю различные повторяющиеся паттерны опечаток. За редким исключением они не зависят от языка программирования. По крайней мере, они одновременно свойственны коду, написанному на C, C++, C#, Java. В этой статье я опишу 7 паттернов, которые заметил к настоящему моменту:


  1. Эффект последней строки.
  2. Злополучная функция memset.
  3. Неверные функции сравнения.
  4. Неверные функции копирования.
  5. Ошибки работы с датами и временем.
  6. Несчастливые числа: 0, 1, 2.
  7. Ошибка на единицу (off-by-one error).

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

Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии23

DefectDojo и PVS-Studio: отслеживаем ошибки и уязвимости

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии6

Обзор подозрительных мест в исходном коде MassTransit

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

MassTransit — Open Source платформа распределённых приложений для .NET. В этой статье мы расскажем о проблемных местах в коде проекта. С поиском таких мест нам поможет статический анализатор. Приятного чтения :).

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Всегда ли в C# есть упаковка при конкатенации со строкой и интерполяции?

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

Разработчики на C# хорошо знакомы с термином "упаковка". Она может быть явной, а может быть незаметна. Например, к упаковке приводит сложение значимого типа со строкой. Или не приводит. Такая вот "упаковка Шрёдингера". В заметке попробуем разобраться с этой неопределённостью.

Читать далее
Всего голосов 19: ↑18 и ↓1+17
Комментарии21

Как уговорить начальника съездить на неделю в Питер: HighLoad++ и TeamLead Conf 2023

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

Мы продолжаем знакомить сообщество разработчиков с нашим статическим анализатором. На этот раз наше путешествие затянулось на неделю! Нам предстояло посетить сразу две конференции в Санкт-Петербурге — Saint HighLoad++ и Saint TeamLead Conf. В статье мы расскажем, чем удивляли и как развлекали разработчиков и других участников, а также поделимся своими впечатлениями.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии2

Герои Кода и Магии: анализ игрового движка VCMI

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

Информация

Сайт
pvs-studio.com
Дата регистрации
Дата основания
2008
Численность
31–50 человек
Местоположение
Россия