В жизни анализатора PVS-Studio состоялось важное событие — в последней версии была добавлена возможность проверки кода, написанного на C#. Являясь одним из разработчиков данного анализатора, я просто не мог пройти мимо, не проверив какой-нибудь проект. Понятно, что мало кому будет интересно читать про проверку маленьких и неизвестных проектов, поэтому нужно было выбрать что-то известное, и выбор пал на MonoDevelop.
Читать полностью »
Рубрика «статический анализ кода» - 22
Ищем ошибки в MonoDevelop
2015-12-30 в 8:31, admin, рубрики: .net, C#, dotnet, Mono, Mono и Moonlight, monodevelop, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, статический анализ кодаНовогодняя проверка .NET Core Libraries (CoreFX)
2015-12-28 в 11:35, admin, рубрики: C#, CoreCLR, CoreFx, dotnet, Mono, Mono и Moonlight, open source, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio, Компиляторы, статический анализ кодаОколо года назад Microsoft выложила в открытый доступ исходный код таких проектов, как CoreCLR и CoreFX. Последний проект до недавнего времени не был нам интересен, потому что написан на языке C#, а не C++. Но с выходом новой версии PVS-Studio 6.00, поддерживающей проекты и на языке программирования C#, я решил вернуться к CoreFX и написать статью.
Введение
.NET Core это модульная реализация библиотек и среды выполнения, которая включает подмножество .NET Framework. .NET Core состоит из набора библиотек, называемых «CoreFX» и небольшой оптимизированной рабочей среды «CoreCLR».
.NET Core распространяется с открытым исходным кодом, который доступен на GitHub:
Это крупные продукты от Microsoft, содержащие качественный исходный код, но подозрительные участки кода всё равно можно найти.
О проверке CoreCLR можно прочитать в статье "PVS-Studio: 25 подозрительных фрагментов кода из CoreCLR".
Проект CoreFX, о котором подойдёт речь в статье, проверялся с помощью статического анализатора PVS-Studio 6.00, который теперь поддерживает и C#!
Читать полностью »
Новогодний релиз PVS-Studio 6.00: проверяем Roslyn
2015-12-23 в 11:52, admin, рубрики: .net, bugs, C#, dotned, pvs-studio, roslyn, Visual Studio, Блог компании PVS-Studio, ошибки в программе, разработка под windows, статический анализ кода
Настало долгожданное событие. Мы выпустили релизную версию статического анализатора кода PVS-Studio 6.00, поддерживающего проверку C#-проектов. Теперь осуществляется проверка кода, написанного на следующих языках: C, C++, C++/CLI, C++/CX, C#. К выпуску шестой версии анализатора мы приурочили проверку открытого проекта Roslyn. Именно благодаря Roslyn в анализаторе PVS-Studio появилась поддержка C#, и мы очень благодарны компании Microsoft за реализацию и развитие этого проекта.
Читать полностью »
Как не стоит преподносить результаты работы статического анализатора
2015-12-18 в 6:43, admin, рубрики: coverity, pvs-studio, Блог компании PVS-Studio, инструменты разработчика, маркетинг, разработка, статический анализ кода На просторах сети расположен блог "No Marketing Bullshit". Неизвестный автор блога по всей видимости является одни из наших поклонников, о чем свидетельствует пара заметок на тему анализатора кода PVS-Studio. Я решил перевести одну из этих заметок. На всякий случай отмечу, что мы никакого отношения к этому блогу не имеем. Это не наш стиль. Если мы собираемся написать рекламную статью, то мы не маскируемся, а так и пишем — это рекламная статья.
Читать полностью »
Проверка операционной системы Haiku (семейство BeOS) c помощью PVS-Studio. Часть 1
2015-04-22 в 6:15, admin, рубрики: beos haiku os, C, c++, Haiku, haiku-os, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, статический анализ кода
Операционные системы являются одними из самых сложных и крупных проектов в мире программного обеспечения, а значит идеально подходят для демонстрации применения методики статического анализа кода. После проверки Linux Kernel, я вдохновился проанализировать и другие открытые операционные системы.
Haiku — свободная операционная система для персональных компьютеров, которая нацелена на двоичную совместимость с операционной системой BeOS. Haiku воплощает в себе основные идеи BeOS. Это модульная система, архитектурно решённая как гибридное ядро: микроядерная архитектура, способная динамически подгружать необходимые модули.
Проект для проверки был предложен пользователем, знакомым с продуктом PVS-Studio и нашей работе по проверке open-source проектов. После сравнительно недавней проверки Linux Kernel, я догадывался, с какими проблемами мне придётся столкнуться и описал их в ответном письме. Неожиданно мне предложили содействие в сборке операционной системы и интеграции анализатора. Дополнительно на официальном сайте была доступна очень обширная документация и я решил попробовать.
Через некоторое время я получил долгожданный лог проверки анализатором и после анализа результатов, я решил написать две статьи, описав самые подозрительные на мой взгляд участки кода. Это первая часть.
Читать полностью »
PVS-Studio: новый триальный режим
2015-04-09 в 12:56, admin, рубрики: C, c/c++, c++, pvs-studio, static code analysis, Блог компании PVS-Studio, демо-версия, Си, статический анализ кода, статический анализатор кода
Мы временами экспериментируем с триальным режимом, чтобы знакомство с анализатором PVS-Studio проходило как можно эффективней. Сейчас мы вновь поменяли формат триальной версии. Эта заметка должна ответить на все вопросы, которое могут возникнуть у разработчиков, пожелавших познакомиться с нашим инструментом. Фактически эта статья является ответом на вопрос «можно ли попробовать демонстрационную версию и какие в ней ограничения?».
Читать полностью »
Баги. Баги никогда не меняются
2015-04-08 в 14:03, admin, рубрики: C, c++, open source, pvs-studio, Блог компании PVS-Studio, открытое программное обеспечение, Си, статический анализ кода, статьи
Вы открыли статью, на которую вы должны дать ссылку в Twitter. Или разместить в любимой программисткой группе. Это принесёт пользу и нам, и открытым проектам. Чтобы программисты всего мира узнали о PVS-Studio, мы проверяем открытые проекты и делаем их лучше. А заодно пишем интересные и полезные статьи. Чем больше люди будут узнавать про наши статьи, тем приятнее нам будет это делать и тем больше проектов мы будем проверять. Совместный profit.
Читать полностью »
Статический анализ PHP кода на примере Symfony2 (часть 2)
2015-04-05 в 13:16, admin, рубрики: php, phpstorm, web-разработка, Веб-разработка, статический анализ кода, метки: phpАннотация
Второй части этой статьи не планировалось, но тема нашла отклик, так что можно продолжить.
Итак, статический анализ кода в больших проектах необходим, и проекты на PHP — не исключение. По сути, проблемы и методология внедрения средств статического анализа будут те же, что и, скажем, в С++.
При повседневном использовании средств статического анализа можно добиться не только заметного уменьшения количества ошибок, но и улучшения качества кода в целом — показать это на практике и есть цель данной статьи.
О том, что можно найти и исправить с минимальным вложением времени (и максимальной отдачей) я расскажу под катом.
Читать полностью »
Статический анализ кода
2015-04-03 в 11:54, admin, рубрики: C, c++, Блог компании PVS-Studio, джон кармак, качество кода, ошибки в программе, Программирование, разработка игр, разработка программного обеспечения, Си, Совершенный код, статический анализ кода
Примечание от переводчика. Изначально эта статья была опубликована на сайте AltDevBlogADay. Но сайт, к сожалению, прекратил своё существование. Более года эта статья оставалась недоступна читателям. Мы обратились к Джону Кармаку, и он сказал, что не против, чтобы мы разместили эту статью на нашем сайте. Что мы с удовольствием и сделали. С оригиналом статьи можно познакомится, воспользовавшись Wayback Machine — Internet Archive: Static Code Analysis.
Поскольку все статьи на нашем сайте представлены на русском и английском языке, то мы выполнили перевод статьи Static Code Analysis на русский язык. А заодно решили опубликовать её на Хабре. Здесь уже публиковался пересказ этой статьи. Но уверен, многим будет интересно прочитать именно перевод.
Самым главным своим достижением в качестве программиста за последние годы я считаю знакомство с методикой статического анализа кода и ее активное применение. Дело даже не столько в сотнях серьезных багов, не допущенных в код благодаря ей, сколько в перемене, вызванной этим опытом в моем программистском мировоззрении в отношении вопросов надежности и качества программного обеспечения.
Читать полностью »
Проверка Vim при помощи PVS-Studio в GNU-Linux
2015-03-19 в 14:41, admin, рубрики: c++, linux, open source, pvs-studio, static code analysis, vim, Блог компании PVS-Studio, Компиляторы, статический анализ кода
Читатель мог бы подумать, что это очередная статья о проверке еще одного проекта из мира свободного ПО, но на самом деле, статья не столько о проверке, сколько о практике использования анализатора PVS-Studio в полностью GNU/Linux окружении. Не случайно выбором проекта для проверки стал Vim, ибо и он в этом деле сослужил свою службу.
Для начала немного о Vim
Vim (http://vim.org) — кроссплатформенный свободный текстовый редактор c 30-летней историей, являющийся наследником редактора vi и пришедший из мира Unix систем.
Vim весьма широко применяется в администрировании и разработке, во многих дистрибутивах GNU/Linux он является редактором по умолчанию. От других текстовых редакторов Vim отличается ориентацией на использование исключительно клавиатуры, текстовый интерфейс, богатыми возможностями расширения через систему написанных на Vim Script плагинов.
Читать полностью »