CppCat – это простой статический анализатор кода для поиска ошибок в программах на языке Си/Си++. Мы начали выдавать бесплатные академические лицензии всем желающим (студентам, преподавателям и так далее). Для большей популяризации CppCat среди студентов я решил написать эту заметку об ошибках, которые можно найти в лабораторных работах, встречающихся на сайте Pastebin.com.
Читать полностью »
Рубрика «cppcat»
Почему студентам нужен анализатор кода CppCat
2014-12-10 в 8:05, admin, рубрики: c++, cppcat, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio, обучение программированию, разработка под windows, статический анализ кода, студентамБесплатный CppCat для студентов
2014-11-13 в 13:04, admin, рубрики: c++, c++/cx, c++11, cppcat, pvs-studio, Visual Studio, Блог компании PVS-Studio, инструменты разработчика, Си, статический анализ кода, халява, халява студентам
CppCat – это статический анализатор кода, интегрирующийся в среду Visual Studio 2010-2013. Анализатор предназначен для регулярного использования и позволяет выявить множество ошибок и опечаток в программах на языке Си и Си++. С целью его популяризации мы решили выдавать бесплатные лицензии всем студентам, которые к нам обратятся. Достаточно прислать фотографию студенческого билета или зачётной книжки.
Читать полностью »
Краткое сравнение PVS-Studio и CppCat
2014-07-16 в 6:53, admin, рубрики: cppcat, pvs-studio, Блог компании PVS-Studio
Как многие знают, мы разрабатываем два анализатора кода для проверки проектов на языке Си/Си++: PVS-Studio и CppCat. Несмотря на то, что мы стараемся сделать очевидным и понятным их отличие, у людей все-равно возникают вопросы – для кого предназначен PVS-Studio, а для кого CppCat. Под катом – ответ на этот вопрос в виде одной картинки.
Команда PVS-Studio и CppCat расширяет кругозор, выполняя разработку на заказ
2014-06-23 в 6:11, admin, рубрики: c++, cppcat, outsourcing, pvs-studio, аутсорсинг, Блог компании PVS-Studio, заказная разработка, код, разработка, Си, метки: c++, cppcat, outsourcing, pvs-studio, аутсорсинг, заказная разработка, код, Си
Как вы знаете, основная наша деятельность – это разработка анализаторов кода PVS-Studio и CppCat. И хотя мы давно и, как нам кажется, успешно этим занимаемся, недавно у нас появилась необычная мысль. Все-таки мы не пользуемся своими инструментами в том режиме, что и наши клиенты. Нет, конечно, мы проверяем код PVS-Studio с помощью PVS-Studio. Но откровенно говоря, проект PVS-Studio не такой уж большой. И работа с кодом PVS-Studio по стилю и характеру отличается от, к примеру, работы с кодом Chromium или LLVM.
Нам хотелось побывать в шкуре своих клиентов для того, чтобы понять, как наш инструмент используется в долгосрочных проектах. Ведь проверки проектов, которые мы делаем регулярно и, про которые пишем много статей, это как раз тот стиль использования анализатора, против которого мы активно выступаем. Неправильно запустить разово анализатор на проекте, исправить несколько ошибок и повторить это через год. При написании кода анализатор надо использовать регулярно, каждый день.
Ну да ладно, к чему это все? Наши теоретические желания попробовать себя в других проектах совпали с практическими предложениями, которые постепенно стали к нам поступать. В прошлом году мы решили выделить у нас в компании команду, которая бы занималась – о ужас! – разработкой на заказ. То есть участвовала в сторонних проектах в качестве программистов. Причем нам было интересно участвовать в долгосрочных и довольно крупных проектах, т.е. не менее 2-3 разработчиков и не менее 6 месяцев разработки. У нас было две цели:
- попробовать альтернативный тип бизнеса (заказную разработку помимо продуктовой разработки);
- самим посмотреть на использование PVS-Studio в долгосрочных проектах.
И первая, и вторая задача оказались удачными. Но эта статья не про бизнес по заказной разработке, а про наш опыт. Имеется в виду не организационный опыт. Про это и так много статей. Про опыт работы с кодом чужих проектов. Про это мы и хотим рассказать.
Читать полностью »
Работа с ложными срабатываниями в PVS-Studio и CppCat
2014-06-20 в 18:00, admin, рубрики: c++, code review, cppcat, pvs-studio, static code analysis, Блог компании PVS-Studio, обзор кода, разработка, статический анализ кода, метки: c++, code review, cppcat, pvs-studio, static code analysis, обзор кода, Си, статический анализ кода
Недавно я решил вновь проверить физический движок Newton Game Dynamics. Код проекта качественный. Поэтому почти не было предупреждений, выявивших ошибки. Зато было несколько десятков ложных срабатываний. Вроде бы писать статью не о чем. Но мне пришла в голову мысль, что можно написать о том, как работать с ложными срабатываниями, и как сделать, чтобы их не было. Проект Newton Game Dynamics показался мне подходящим для этого кандидатом.
Читать полностью »
CppCat провереяет OpenMW: во вселенной Morrowind не всё гладко
2014-05-28 в 5:38, admin, рубрики: bugs, c++, code review, cppcat, game development, static code analysis, Блог компании PVS-Studio, разработка игр, статический анализ кода, метки: bugs, c++, code review, cppcat, static code analysis, разработка игр, Си, статический анализ кода
Я проверил проект OpenMW с помощью CppCat и написал эту крошечную статью. Нашлось слишком мало ошибок. Но меня просили написать про это проверку этого проекта статью, и вот она.
Читать полностью »
Сравнение анализаторов кода: CppCat, Cppcheck, PVS-Studio, Visual Studio
2014-03-12 в 5:49, admin, рубрики: c++, c++11, cppcat, cppcheck, pvs-studio, visual c++, Visual Studio, visual studio 2013, Блог компании PVS-Studio, Си, статический анализ кода, метки: c++, c++11, cppcat, cppcheck, pvs-studio, visual c++, Visual Studio, visual studio 2013, Си, статический анализ кодаАвторы: Евгений Рыжков (EvgeniyRyzhkov), Андрей Карпов (Andrey2008), Павел Еремеев (Paull), Святослав Размыслов (svyatoslavmc).
Мы провели подробное сравнение четырёх анализаторов Си/Си++ кода: CppCat, Cppcheck, PVS-Studio и статический анализатор, встроенный в Visual Studio 2013. Это серьезное исследование, на которое нами было потрачено около 170 человеко-часов и которое, на наш взгляд, хорошо отражает картину, существующую на данный момент.
Читать полностью »
Побочный результат: проверяем CryEngine 3 SDK с помощью CppCat
2014-03-10 в 14:11, admin, рубрики: bugs, c++, code review, cppcat, game development, pvs-studio, Блог компании PVS-Studio, ошибки в коде, ошибки в программе, метки: bugs, c++, code review, cppcat, pvs-studio, ошибки в коде, ошибки в программе, Си
Мы закончили сравнивать статические анализаторы кода CppCat, Cppcheck, PVS-Studio и анализатор встроенный в Visual Studio 2013. В ходе этого было проверено более 10 открытых проектов. И про некоторые из них можно написать статьи. Вот очередная такая статья о результатах проверки проекта CryEngine 3 SDK.
Читать полностью »
Сколько стоит одна ошибка в наших программах, или какие ошибки бывают в PVS-Studio и CppCat
2014-02-28 в 5:58, admin, рубрики: c++, cppcat, pvs-studio, Блог компании PVS-Studio, пятница, статический анализ кода, метки: cppcat, pvs-studio, пятница, статический анализ кодаВ списке вопросов, которые всегда задают нам после прочтения наших статей есть вопрос: «А вы проверяете код своего анализатора им самим?». И дается ответ в том ключе, что у нас всегда проверяется код во время написания с помощью режима инкрементального анализа (проверки файлов сразу после компиляции). А также запускаются ночные проверки для всего кода. И в связи с этим мы, к сожалению (ирония), никогда не сможем написать статью про ошибки в наших программных продуктах.
Однако сегодня – именно статья про одну нашу ошибку и про то, сколько она нам стоила. Заинтриговал?
О том что мне помог найти CppCat в проектах
2014-02-04 в 8:05, admin, рубрики: c++, cppcat, Блог компании PVS-Studio, Программирование, статический анализ кода, метки: c++, cppcat, статический анализ кодаРазработка программного обеспечения на C++ с годами становится сложнее. Иногда, например, в отношении нового стандарта C++11 можно слышать, что язык усложнился. Да это так, но парадокс в том, что язык усложнился, а разработка на нем стала проще благодаря новым возможностям. И вся сложность разработки ПО на C++ не только в сложности языка, а в том, что с годами потребители от программного обеспечения ждут все больше возможностей. Как следствие растет и кодовая база проектов, для приведения которой в хороший законченный программный продукт требуется все больше вспомогательного ПО для разработчиков. Одним из таких инструментов является статический анализатор кода, который помогает разработчику найти проблемные или подозрительные участки кода, о которых компилятор промолчал.
Необходимость в большем количестве инструментов и статическом анализе возникает не просто так, не от лени и не от требований писать код еще быстрее. Чем больше и сложнее программа, тем больше в ней ошибок. Причем, количество дефектов растет быстрее, чем размер кода. Этот эффект описывал Стив Макконнелл в книге «Совершенный код» (см. также «Ощущения, которые подтвердились числами»). Так что без вспомогательных инструментов, берущих на себя часть работы, обходиться со временем все сложнее.
Не так давно появился новый такой инструмент — CppCat. О том как продукт PVS-Studio показал себя в проверке того или иного проекта с открытым кодом уже написано немало. PVS-Studio и CppCat базируются на одном и том же движке. Попробую отправить CppCat на поиски подозрительных мест в проектах, над которыми довелось поработать и из которых есть возможность показать небольшие фрагменты кода. Что из этого получилось?
Читать полностью »