Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу под кат.
Рубрика «static code analysis»
Почему в С++ массивы нужно удалять через delete[]
2022-07-27 в 12:18, admin, рубрики: array, c++, Cpp, delete, pvs, pvs-studio, static code analysis, Блог компании PVS-Studio, ПрограммированиеPVS-Studio теперь в Compiler Explorer
2020-07-06 в 12:25, admin, рубрики: C, c++, Compiler Explorer, godbolt.org, online code analysis, online compilers, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, Программирование
Совсем недавно произошло знаменательное событие: PVS-Studio появился в Compiler Explorer! Теперь вы можете быстро и легко проанализировать код на наличие ошибок прямо на сайте godbolt.org (Compiler Explorer). Это нововведение открывает большое количество новых возможностей – от утоления любопытства по поводу способностей анализатора до возможности быстро поделиться результатом проверки с другом. О том, как использовать эти возможности, и пойдёт речь в этой статье. Осторожно – большие гифки!
Читать полностью »
PVS Studio.VS.Статический анализ GCC 10. Независимый минитест
2020-04-17 в 15:44, admin, рубрики: C, pvs, static code analysis, Промышленное программированиеПосле появления переводной статьи про Статический анализ в GCC 10, и ожидаемой реакции присутствующих здесь представителей разработчика коммерческого статического анализатора PVS-Studio, у меня возник вопрос: «Почему же представители отказываются проверить свой продукт на таких простых примерах для статического анализа, и не скрывают ли они чего?»
Andrey2008 Ды, неинтересно мне это. Поймал/не поймал синтетическую ошибку, это ничего не говорит о возможностях анализатора
Должны же они как то прогонять юнит-тесты своего продукта и как, если не на таких синтетических простых примерах?!
Собственно, пришлось сделать это самому.
Читать полностью »
DeepCode: взгляд со стороны
2020-04-10 в 7:25, admin, рубрики: c++, DeepCode, machine learning, pvs-studio, static code analysis, Блог компании PVS-Studio, машинное обучение
Не так давно DeepCode, статический анализатор, основанный на машинном обучении, стал поддерживать проверку C и C++ проектов. И теперь мы можем на практике взглянуть, чем отличаются результаты классического статического анализа и статического анализа, основанного на машинном обучении.
Читать полностью »
Начало коллекционирования ошибок в функциях копирования
2020-04-04 в 8:37, admin, рубрики: bugs, C, c++, memcpy, static code analysis, баги, Блог компании PVS-Studio, ошибки в коде, Си, статический анализ кода
Уже несколько раз замечал, что программисты допускают ошибки в простых функциях копирования данных. Эта тема потребует в будущем ещё много времени для изучения и подбора материала, чтобы написать основательную статью. Но захотелось поделиться парой примеров, недавно замеченных мною.
Читать полностью »
Ноль, один, два, Фредди заберёт тебя
2020-02-14 в 8:39, admin, рубрики: bugs, C#, c++, code review, coding horror, coding style, dev, java, programming, pvs-studio, SAST, static code analysis, баги, Блог компании PVS-Studio, Программирование, статический анализ кода
Перед вами продолжение серии статей, которую можно озаглавить «ужасы для программистов». В этот раз речь пойдёт о типовом паттерне опечаток, связанном с использованием чисел 0, 1, 2. Неважно, пишите вы на C, C++, C# или Java. Если вы используете константы 0, 1, 2, или если эти числа содержатся в именах переменных, то, скорее всего, Фредди заглянет к вам ночью в гости. Читайте и не говорите потом, что вас не предупреждали.
Читать полностью »
Использование машинного обучения в статическом анализе исходного кода программ
2020-01-16 в 12:23, admin, рубрики: artificial intelligence, big data, BigData, Clever-Commit, CodeGuru, Commit Assistant, DeepCode, Embold, github, Infer, mashine learning, ml, pvs-studio, SapFix, Sapienz, static code analysis, static code analyzer, Блог компании PVS-Studio, Большие данные, искусственный интеллект, машинное обучение, Программирование, статический анализ кода, статический анализатор
Машинное обучение плотно укоренилось в различных сферах деятельности людей: от распознавания речи до медицинской диагностики. Популярность этого подхода столь велика, что его пытаются использовать везде, где только можно. Некоторые попытки заменить классические подходы нейросетями оканчиваются не столь уж успешно. Давайте взглянем на машинное обучение с точки зрения задач создания эффективных статических анализаторов кода для поиска ошибок и потенциальных уязвимостей.
Читать полностью »
VVVVVV??? VVVVVV!!! :)
2020-01-16 в 7:36, admin, рубрики: bugs, c++, code analysis, game development, Gamedev, pvs-studio, static code analysis, VVVVVV, Блог компании PVS-Studio, Программирование, разработка игрЕсли вы читаете этот текст – значит, вы либо подумали, что с заголовком статьи что-то не то, либо увидели в нём название знакомой компьютерной игры. VVVVVV – это инди-игра в жанре «платформер», завоевавшая сердца многих игроков своей приятной внешней простотой и не менее приятной внутренней сложностью. Несколько дней назад VVVVVV исполнилось 10 лет, и автор игры – Terry Cavanagh – отметил этот праздник публикацией её исходного кода. Что же «вкусненького» можно в нём найти? Ответ читайте в данной статье.
Статический анализатор кода PVS-Studio как защита от уязвимостей нулевого дня
2019-11-28 в 7:19, admin, рубрики: 0day, CVE, cwe, DevSecOps, information security, pvs-studio, SAST, static analysis, static code analysis, zero-day, Блог компании PVS-Studio, информационная безопасность, статический анализ кода, уязвимость нулевого дня
Угроза нулевого дня (англ. zero day) – это термин, обозначающий уязвимости, допущенные при разработке, которые еще не были обнаружены. Такие уязвимости могут использоваться злоумышленниками, что в итоге затронет и репутацию компании. Перед разработчиками стоит задача максимально сократить количество дефектов в коде, которые могут стать причиной такой уязвимости. Одним из инструментов, помогающих выявить дефекты безопасности, является статический анализатор кода PVS-Studio для C, C++, C#, Java.
Читать полностью »
Huawei Cloud: в PVS-Studio сегодня облачно
2019-11-26 в 12:18, admin, рубрики: cloud services, huawei, java, pvs-studio, pvs-studio free, PVS-Studo, pvsstudio, static code analysis, Блог компании PVS-Studio, облачные сервисы, Программирование
В нынешний век каждый уже слышал об облачных сервисах. Многие компании освоили этот сегмент рынка и создали свои облачные сервисы самых различных направлений. Наша команда также в последнее время интересуется этими сервисами с точки зрения интеграции с ними анализатора кода PVS-Studio. Думаем, наши постоянные читатели уже догадываются, проект какого типа мы проверим в этот раз. Выбор пал на код облачных сервисов компании Huawei.
Читать полностью »