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

Дебажим баги в дебаггере x64dbg. Без дебаггера

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

Ни один процесс разработки программы не проходит без отладки. Современные IDE обеспечивают программиста встроенным отладчиком. Однако бывают ситуации, когда использование IDE для отладки избыточно или невозможно, и тогда на помощь приходят автономные отладчики, один из которых — x64dbg.

Сделать шаг с заходом
Всего голосов 5: ↑5 и ↓0+10
Комментарии3

Фиксим баги в вашем AI или разбор ошибок в OpenVINO

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

Друзья-разработчики, приглашаем вас продолжить захватывающее путешествие по дебрям кода Intel OpenVINO! Вооружившись статическим анализатором аки детективы, мы разоблачим наиболее коварные, интересные ошибки и опечатки, а также их скрытые тайны, оставшиеся за рамками первой части статьи.

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

Как научить кота программировать. Необычные подходы к изучению нового

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

Твой хомячок давно забыл свои молодые деньки, когда писал код на C#? Он хочет вернуться к программированию, но время летело так быстро, что уже вышел C# 12? Кошечка не знает, как организовать мероприятие, а на носу новогодний корпоратив на 50 человек? Так ещё эти подопечные насмотрелись тиктоков, и теперь их внимание фокусируется не более чем на минутку?

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

Готовы прочесть? Тогда берём кота за ушки (или за лапки, если он согласится) и вперёд!

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

Неожиданности в авторизации. Что скрывает Keycloak?

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

Авторизация и регистрация пользователей — важная часть приложения как для юзеров, так и для безопасности. Но какие неожиданности содержит исходный код популярного Open Source решения для авторизации, и как они могут повлиять на работу приложения?

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

Насекомое 13 лет сидит в вашем компиляторе и не собирается оттуда вылезать

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

Представим, что у вас идеальный проект. Таски пилятся, компилятор компилирует, статические анализаторы анализируют, релизы релизятся. В какой‑то момент вы принимаете волевое решение открыть древний файл, в который никто не залезал уже много лет, и видите, что он в кодировке Windows-1251. При том, что весь проект уже давно перешёл на UTF-8. «Непорядок!» — думаете вы, и лёгким движением руки меняете кодировку. На следующий день на вашем тестовом сервере случается локальный апокалипсис. Думаете, такого не может быть? Тогда предлагаю это обсудить.

Читать далее
Всего голосов 33: ↑32 и ↓1+40
Комментарии70

.NET Digest #1

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

Добро пожаловать на первый выпуск нашего дайджеста, посвященного новостям и событиям в мире .NET! Команда C# разработчиков из PVS-Studio собрала для вас самые интересные и полезные материалы, чтобы держать вас в курсе последних тенденций и разработок. Поехали!

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

Тотемные утки и шаманские бубны: есть ли у разработчиков свои ритуалы и приметы?

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

Баги, баги, баги... Как же их много... Немудрено и фобию заиметь. И ведь никогда не знаешь, чем обернётся очередная ошибка в коде. Страх перед неизвестным, желание держать всё под контролем — закономерные спутники магического мышления. Но подождите, какие ещё магические ритуалы в 21 веке? Тем более у программистов...

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

Подборка докладов по С# 2023-2024

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

Недавно мы публиковали подборку докладов по C++, но не будем же мы обделять и C# разработчиков. Поэтому предлагаем вашему вниманию интересные доклады из мира .NET и C#.

Вперёд к новым знаниям!
Всего голосов 10: ↑10 и ↓0+11
Комментарии2

12 мгновений опечаток и копипаста, или почему сбоит AI: проверяем код OpenVINO

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

"OpenVINO — набор инструментов, позволяющий проводить глубокое обучение AI для взаимодействия с реальным миром теперь ещё эффективнее!" — эта новость для нас прозвучала как призыв к действию. Код проекта проверен, ошибки найдены, и первая часть статьи готова к прочтению. Будет интересно!

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

Побитовые проверки в Java и почему они так неоднозначны

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

Операторы "&" и "|" не вызывают вопросов, когда применяются в подходящих ситуациях. Но знаете ли вы о всех последствиях использования побитовых операторов вместо логических в Java? В этой статье мы рассмотрим как плюсы производительности такого подхода, так и минусы его читабельности.

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

Ненавижу, _____, C++ массивы

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

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

Но почему?
Всего голосов 47: ↑45 и ↓2+58
Комментарии170

Как шаблонный метод может сломать ваш Java код

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+11
Комментарии21

Улыбка сквозь баги

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

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

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

Сколько UB в моём компиляторе?

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

У C и C++ программистов две головные боли в плане ошибок: утечки памяти и неопределённое поведение. И как вы догадались из названия, речь пойдёт о неопределённом поведении. И каком‑то «моём» компиляторе. Если точнее, то о наборе компиляторов и инструментах для их разработки, а именно LLVM. Почему «моём»? Потому что мы очень любим Clang, входящий в состав LLVM, и пользуемся им на постоянной основе.

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

Ловушки volatile, DCL и синхронизации в Java

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

А что если окажется, что простые знания на самом деле более нюансированные, а старые знакомые, такие как Double-checked locking, являются неоднозначными? Именно на такие мысли наталкивает изучение кода реальных проектов. Результаты этого исследования мы и рассмотрим в этой статье.

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

Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов

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

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

Читать дальше →
Всего голосов 61: ↑60 и ↓1+80
Комментарии109

Какие ошибки есть в коде LLVM?

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

LLVM — open-source проект с огромной кодовой базой. Лучший из лучших, если говорить о качестве кода, учитывая его размеры и открытость. Ведь кому, как не разработчикам инструментов для компиляторов, лучше знать о возможностях языка и правильном их использовании. Их код всегда на высоте, а найти ошибки в нём всегда вызов для нашего анализатора, который мы принимаем.

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

С++: освобождение ресурсов в деструкторах с использованием вспомогательных функций

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

Про освобождение ресурсов в деструкторах с использованием вспомогательных функции


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

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

Garnet. Хранит ли баги кэш-хранилище от Microsoft?

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

Microsoft представили Garnet — проект кроссплатформенного быстрого кэш-хранилища с открытым исходным кодом, написанный на языке C#. Предлагаю расчехлить статический анализатор и посмотреть, какие ошибки и странности содержатся в исходном коде проекта.

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

Проверка игрового движка qdEngine, часть третья: дополнительная десятка багов

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

Часть третья


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

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

Информация

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