Статья рассчитана на людей, которые знакомятся со средой Visual Studio и пытаются компилировать в ней свои Си++-проекты. В незнакомой среде всё кажется странным и непонятным. Особенно новичков раздражает файл stdafx.h, из-за которого возникают странные ошибки во время компиляции. Очень часто всё заканчивается тем, что новичок долгое время везде старательно отключает Precompiled Headers. Чтобы помочь людям разобраться что к чему, и была написана эта статья.
Читать полностью »
Метка «Си»
Для новичков про stdafx.h
2014-06-25 в 6:34, admin, рубрики: c++, visual c++, Visual Studio, Блог компании PVS-Studio, препроцессор, Си, метки: c++, visual c++, Visual Studio, препроцессор, СиКоманда 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 показался мне подходящим для этого кандидатом.
Читать полностью »
Легко и просто проверяем Firefox с помощью PVS-Studio Standalone
2014-06-15 в 9:39, admin, рубрики: bugs, c++, code review, Firefox, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, обзор кода, ошибки в программе, статический анализ кода, метки: bugs, c++, code review, firefox, pvs-studio, static code analysis, обзор кода, ошибки в программе, Си, статический анализ кода
Три года назад мы уже проверяли Mozilla Firefox с помощью анализатора PVS-Studio. Тогда это было неудобно и затруднительно. Для Firefox отсутствует проектный файл для Visual Studio. Сборка осуществляется с помощью make-файлов. Поэтому просто взять и проверить проект нельзя. Требовалось интегрировать PVS-Studio в систему сборки, что оказалось трудной задачей. В результате, как мне помнится, была проанализирована только часть проекта. Но всё поменялось, когда появился PVS-Studio Standalone. Теперь можно отследить все запуски компиляторов и легко проверить проект.
Читать полностью »
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 и написал эту крошечную статью. Нашлось слишком мало ошибок. Но меня просили написать про это проверку этого проекта статью, и вот она.
Читать полностью »
Математикам доверяй, но проверяй
2014-03-30 в 5:52, admin, рубрики: bugs, c++, error, pvs-studio, SciLab, Блог компании PVS-Studio, математический пакет, обзор кода, ошибки в коде, ошибки в программе, Си, статический анализ кода, метки: bugs, c++, error, pvs-studio, SciLab, математический пакет, обзор кода, ошибки в коде, ошибки в программе, Си, статический анализ кода
Я временами бываю озадачен, рассматривая ошибки в очередном программном проекте. Многие из этих ошибок живут в проектах годами. Смотришь на сотню ляпов в коде и удивляешься, как программа вообще работает. И ведь как-то работает. Ей даже пользуются. Причем, я говорю не о коде, рисующем покемона в игре. А, например, о математических библиотеках. Да, вы верно догадались. В этой статье пойдет речь о проверке кода математической библиотеки Scilab.
Читать полностью »
Единорог заинтересовался микромиром
2014-03-18 в 6:01, admin, рубрики: bugs, c++, open source, pvs-studio, Блог компании PVS-Studio, обзор кода, ошибки в коде, метки: bugs, c++, open source, pvs-studio, обзор кода, ошибки в коде, Си
В этот раз интересные примеры ошибок нам преподнёс микромир. Мы проверили с помощью анализатора кода PVS-Studio открытый проект μManager. Это программный пакет для автоматизированного получения изображения с микроскопа.
Читать полностью »
Сравнение анализаторов кода: 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.
Читать полностью »
Ваттметр поглощаемой СВЧ мощности и мое участие в разработке над ним
2014-03-04 в 16:33, admin, рубрики: микроконтроллеры, Программинг микроконтроллеров, Программирование, Си, метки: микроконтроллеры, Программирование, СиДоброго времени суток, уважаемые читатели. Зарегистрировался на хабре я давно, но никак не решался оформить свой первый пост.
Хотелось написать что-то, что действительно может показаться интересным. Время шло, а идеи все никак не приходили.
И вот, буквально на днях, я закончил работу над одним из своих первых проектов, после чего, мне в голову пришла мысль сделать некий видео обзор и написать небольшую статью о приборе, над которым я работал достаточно продолжительный период времени. Работал не один, но речь пойдет о части, которая «висела» целиком и полностью на мне.
Для начала приведу немного сухой технической информации