2024_10_30_Андрей_Карпов_SafeCode_Модельные_варианты_ошибок.pdf
2.9 MB
Выступил сегодня на SafeCode с докладом "Модельные варианты ошибок, или Как статические анализаторы находят ошибки, которые не могут искать". В открытом доступе запись появится позже, а пока решил поделиться презентацией.
P.S. Спасибо Андрею Кулешову
P.S. Спасибо Андрею Кулешову
🔥3
В моём докладе на SafeCode была юмористическая вставка на тему "опровержение великой теоремы Ферма с помощью оптимизирующего компилятора". Сегодня опубликована 8 часть путеводителя C++ программиста по неопределённому поведению. В ней можно прочитать про это подробнее.
👍3❤1🔥1
Тема разыменования нулевых указателей стара, страшна и интересна. Неопределённое поведение всегда или нет? Я уже касался этой темы в 2015 году. Но в этом вопросе точку поставить не получается :) Есть масса нюансов. Языки С и C++ пошли немного разыми путями в этом вопросе. Меняются формулировки в стандарте.
Очередное разбирательство с этим вопросом вас ждёт в 9 главе книги про неопределённому поведению. См. главу "Исполнение программы: разыменование нулевых указателей".
Очередное разбирательство с этим вопросом вас ждёт в 9 главе книги про неопределённому поведению. См. главу "Исполнение программы: разыменование нулевых указателей".
👍4
Кстати, а вы знали что в C++ долго была подпорка на будущие в виде функций declare_reachable и undeclare_reachable для тех радужных времён, когда появится сборщик мусора? Если вам интересно что это такое и при этом вы пропустили 8 главу книги про UB, то самое время почитать - https://pvs-studio.ru/ru/blog/posts/cpp/1178/#ID80C8125AE7
PVS-Studio
Путеводитель C++ программиста по неопределённому поведению: часть 8 из 11
Вашему вниманию предлагается восьмая часть электронной книги, которая посвящена неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо знаком с...
Вмешательство в рабочую систему больше похоже на вскрытие головного мозга и замену нерва, чем на замену прокладки в кране. Облегчилось ли бы сопровождение программ, если б оно называлось "нейрохирургией ПО"?
Джеральд Вайнберг (Gerald Weinberg)
Джеральд Вайнберг (Gerald Weinberg)
Forwarded from S0ER
Челлендж: 🤣 🤣 🤣 Расскажи бабушке про статанализ
Скоро Новый год, время подрков и несерьезных челленджей.
Задача простая: в комментариях к этому посту максимально простым языком напишите что такое статанлиз, так чтобы даже бабушка поняла (можно в шуточной форме).
Кто соберет больше всего положительных реакций под комментарием получит приз - книгу «60 антипаттернов для С++ программиста» автор Андрей Карпов - сооснователь копании PVS-Studio.
Книга будет полезна новичкам, кто хочет глубже изучить C++ и понять почему некоторые вещи делать вредно. А самое ценное - в книге опсано еще и "почему" вредно!
Чтобы вы прониклись всей важностью момента, книгу нельзя купить в магазине, это ограниченный тираж, который расходится только между своими!
P.S. Итоги подведем на стриме в выходные! Торопитесь, времени мало!
SOER | PRO | Boosty
Скоро Новый год, время подрков и несерьезных челленджей.
Задача простая: в комментариях к этому посту максимально простым языком напишите что такое статанлиз, так чтобы даже бабушка поняла (можно в шуточной форме).
Кто соберет больше всего положительных реакций под комментарием получит приз - книгу «60 антипаттернов для С++ программиста» автор Андрей Карпов - сооснователь копании PVS-Studio.
Книга будет полезна новичкам, кто хочет глубже изучить C++ и понять почему некоторые вещи делать вредно. А самое ценное - в книге опсано еще и "почему" вредно!
Чтобы вы прониклись всей важностью момента, книгу нельзя купить в магазине, это ограниченный тираж, который расходится только между своими!
P.S. Итоги подведем на стриме в выходные! Торопитесь, времени мало!
SOER | PRO | Boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
PVS-Studio соответствует требованиям ГОСТ Р 71207—2024 (статический анализ программного обеспечения)
Давно ничего не публиковал, так как почти все силы уходили на большой обзор PVS-Studio с точки зрения ГОСТ. Тяжело пошло, так как это непривычный мне формат повествования. Но результат мне нравится. Получилось основательно, я бы даже сказал монументально :) Не скажу, что всем стоит почитать. Просто полистайте и знайте, что теперь есть эта справочная статья, к которой можно обратиться, на случай если столкнётесь с тематикой РБПО, сертификаций и т.д.
Давно ничего не публиковал, так как почти все силы уходили на большой обзор PVS-Studio с точки зрения ГОСТ. Тяжело пошло, так как это непривычный мне формат повествования. Но результат мне нравится. Получилось основательно, я бы даже сказал монументально :) Не скажу, что всем стоит почитать. Просто полистайте и знайте, что теперь есть эта справочная статья, к которой можно обратиться, на случай если столкнётесь с тематикой РБПО, сертификаций и т.д.
Хабр
PVS-Studio соответствует требованиям ГОСТ Р 71207—2024 (статический анализ программного обеспечения)
Инструментальное средство PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207–2024, выявляет критические ошибки и может использоваться при...
🔥4👍1
А вот и новогодние подборки лучших ошибок прибыли. Топ-10 ошибок за 2024 год, найденных в:
C++ проектах
C# проектах
Java проектах
C++ проектах
C# проектах
Java проектах
PVS-Studio
Судный день: топ-10 ошибок в C и C++ проектах за 2024 год
Каждый год мы наблюдаем одинаковую картину: ошибки портят нам код, пытаясь доказать, что они здесь главные. Но сегодня настал день расправы. Давайте посмотрим, какие самые интересные баги мы нашли в...
👍3🔥1
Forwarded from PVS-Studio: поиск ошибок в С/С++, С# и Java
Media is too big
VIEW IN TELEGRAM
#видео #НовыйГод
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🎉1
https://pvs-studio.ru/ru/blog/posts/cpp/1211/
Всё! Последняя часть из серии про неопределённое поведение. Символично, что 12-ая статья из 11 вышла под номером 1211 :). Приятного чтения.
Всё! Последняя часть из серии про неопределённое поведение. Символично, что 12-ая статья из 11 вышла под номером 1211 :). Приятного чтения.
PVS-Studio
Путеводитель C++ программиста по неопределённому поведению: часть 12 из 11
Вашему вниманию предлагается заключительная двенадцатая часть электронной книги, которая посвящена неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо...
👍2
Forwarded from PVS-Studio: поиск ошибок в С/С++, С# и Java
Вы хотите идти в ногу со временем и перевести ваш проект на полиморфные аллокаторы? Вас не могут отговорить от этого даже затраты на виртуальные вызовы? Тогда вы просто обязаны знать о нюансах с лайфтаймом, и почему нельзя просто взять и поменять свои контейнеры на аналоги из пространства имён pmr.
Все подробности по ссылке🔗
#статья #cpp
Все подробности по ссылке
#статья #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
Приглашаю скачать мою книгу "Вредные советы для C++ программистов" в PDF формате. Можно и нужно делиться ссылкой с коллегами и в соцсетях :)
🔥6👏4
https://habr.com/ru/companies/pvs-studio/articles/877274/
Собрал в статью-агрегатор ссылки на все части электронной книги "Путеводитель C++ программиста по неопределённому поведению". Кладите в закладки и желаю приятного чтения.
Собрал в статью-агрегатор ссылки на все части электронной книги "Путеводитель C++ программиста по неопределённому поведению". Кладите в закладки и желаю приятного чтения.
Хабр
Путеводитель C++ программиста по неопределённому поведению
Вашему вниманию предлагается полный список разделов электронной книги (12 из 11 :)), посвящённой неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо...
❤4🔥4
Коряво оформленный код притягивает ошибки. Полез в проект TDengine и прям сходу вот такая длинное и неправильное условие (1). PVS-Studio обращает внимание, что два раза выполняется одинаковое сравнение (2).
Согласитесь, в длинной колбасе баг не заметен. Достаточно отформатировать код (3) и аномалия сразу как на ладони.
Будем считать, что повторная проверка лишняя и что-то ещё проверять не надо. Удаляем, плюс немного рефакторинга (4). Красота! Заодно функции сократилось с 5 строк, до 4.
Согласитесь, в длинной колбасе баг не заметен. Достаточно отформатировать код (3) и аномалия сразу как на ладони.
Будем считать, что повторная проверка лишняя и что-то ещё проверять не надо. Удаляем, плюс немного рефакторинга (4). Красота! Заодно функции сократилось с 5 строк, до 4.
👍5🤔1
Проект TDengine. Красивое!
Кто видит ошибку? ;)
В последней проверке скобочка не там поставлена. Результат вызова функции InitRegexCache сравнивается с 0, и только затем 0 или 1 записывается в code.
PVS-Studio: V593 Consider reviewing the expression of the 'A = B != C' kind. The expression is calculated as following: 'A = (B != C)'. dmEnv.c 182
Кто видит ошибку? ;)
PVS-Studio:
👏4