После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода). Мои рассуждения о том, что это сильно зависит от анализируемого проекта и настроек анализатора не выглядят как настоящий ответ. Я решил привести конкретные числа, проведя более тщательное исследование одного из проектов, входящих в состав Tizen. Поскольку в обсуждении статьи активное участие принимал Carsten Haitzler, я решил, что будет интересно взять для эксперимента EFL Core Libraries, в разработке которого он участвует. Надеюсь, эта статья поможет Carsten стать поклонником нашего анализатора :).
Читать полностью »
Рубрика «c/c++» - 4
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний
2017-07-31 в 14:12, admin, рубрики: C, c/c++, c++, efl, EFL Core Libraries, open source, pvs-studio, PVS-Studio for Linux, Блог компании PVS-Studio, Графические оболочки, ошибки в коде, Разработка под Linux, Си, си/си++, статический анализ кодаTizen: подводим итоги
2017-07-26 в 8:51, admin, рубрики: c/c++, C#, c++, code review, cwe, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, информационная безопасность, итоги, ошибки в коде, плотность ошибок, Разработка под Tizen, статический анализ кодаНаша команда написала три заметки, связанные с анализом кода операционной системы Tizen. Операционная система содержит много кода и поэтому является благодатной почвой для написания различных статей. Думаю, что к Tizen мы ещё вернёмся в будущем, но сейчас нас ждут другие интересные проекты. Поэтому я подведу некоторые итоги проделанной работы и отвечу на ряд вопросов, возникших после опубликованных ранее статей.
Поговорим о микрооптимизациях на примере кода Tizen
2017-07-17 в 7:02, admin, рубрики: C, c/c++, c++, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, код, микрооптимизация, оптимизация кода, оптимизация программ, разработка операционных систем, Разработка под Tizen, рефакторинг, Си, си/си++, статический анализ кода
Как правило, при обсуждении диагностических возможностей PVS-Studio за кадром остаются рекомендации, выдаваемые анализатором по поводу микрооптимизаций Си и Cи++ кода. Конечно, микрооптимизации не так важны, как диагностики выявляющие ошибки, но про них тоже интересно поговорить.
Читать полностью »
27000 ошибок в операционной системе Tizen
2017-07-12 в 8:13, admin, рубрики: bugs, C, c/c++, c++, open source, pvs-studio, Samsung, static code analysis, static code analyzer, tizen, tizen os, аудит кода, Блог компании PVS-Studio, операционная система, открытая ос, ошибки в коде, Разработка под Tizen, Си, си/си++, системное программирование, статический анализ кода, статический анализатор кода
Эта статья продемонстрирует, что при разработке крупных проектов статический анализ кода является не просто полезным, а совершенно необходимым элементом процесса разработки. Я начинаю цикл статей, посвященных возможности использования статического анализатора кода PVS-Studio для повышения качества и надежности операционной системы Tizen. Для начала я проверил небольшую часть операционной системы (3.3%) и выписал около 900 предупреждений, указывающих на настоящие ошибки. Если экстраполировать результаты, то получается, что наша команда способна выявить и устранить в Tizen около 27000 ошибок. По итогам проведённого исследования я подготовил презентацию, которая предназначалась для демонстрации представителям Samsung и была посвящена возможному сотрудничеству. Встреча перенесена на неопределённый срок, поэтому я решил не тратить время и трансформировать материал презентации в статью. Запасайтесь вкусняшками и напитками, нас ждёт длинный программистский триллер.
Читать полностью »
Предоставляем анализатор PVS-Studio экспертам безопасности
2017-06-06 в 12:44, admin, рубрики: c/c++, pvs-studio, tizen, Блог компании PVS-Studio, информационная безопасность, ошибки в коде, статический анализ кода, уязвимости, уязвимость, экспертНеожиданно для самих себя мы поняли, что можем взаимовыгодно сотрудничать с экспертами в сфере информационной безопасности. Те из них, кто занимается поиском уязвимостей в коде приложений, могут воспользоваться бесплатной версией анализатора PVS-Studio для своих исследований. В свою очередь, если будут найдены уязвимости, наш анализатор приобретёт большую популярность. PVS-Studio может быть использован для исследований проектов, написанных на языке C и C++.
Читать полностью »
2038: остался всего 21 год
2017-05-05 в 8:46, admin, рубрики: 2038, C, c/c++, c++, time_t, Блог компании PVS-Studio, время в программах, Программирование, Разработка под Linux, СиПорой кажется, что на фронте борьбы с проблемой 2038 года наступило относительное затишье. Однако время идет, и тот день, когда 32-битные значения типа time_t больше не смогут корректно отображать даты, наступит уже меньше чем через 21 год. Этот срок может показаться большим, однако сравнительно долгий жизненный цикл многих встраиваемых систем подразумевает, что некоторые из них, будучи введенными в строй в наше время, все еще будут работать, когда наступит критический момент. Арнд Бергманн — один из основных разработчиков, занимающихся этой проблемой. На конференции Linaro Connect 2017 он поделился новостями о текущем положении дел в этой области.
Читать полностью »
Как используя PVS-Studio можно улучшить Visual C++ 2017 Libraries
2017-05-02 в 12:19, admin, рубрики: bugs, C, c/c++, c++, dev tools, MFC, pvs-studio, visual c++, Visual Studio, visual studio 2017, VS2017, библиотеки, Блог компании PVS-Studio, Компиляторы, ошибки, ошибки в коде, разработка под windows, Си, статический анализ кодаНазвание статьи намекает разработчикам Visual Studio, что они могут получать пользу от использования статического анализатора кода PVS-Studio. В статье приводятся результаты анализа библиотек, входящих в состав недавно выпущенной версии Visual C++ 2017, и даются рекомендации по улучшению и устранению ошибок. Приглашаю читателей узнать, как разработчики Visual C++ Libraries отстреливают ноги: будет интересно и познавательно.
Читать полностью »
Статья о статическом анализе кода для менеджеров, которую не стоит читать программистам
2017-04-14 в 14:18, admin, рубрики: bugs, C, c/c++, C#, c++, devops, pvs-studio, static code analysis, Блог компании PVS-Studio, информационная безопасность, качество кода, ошибки в коде, ошибки в программе, Си, статический анализ кода, управление персоналом, Управление продуктом, управление проектами, управление разработкой
Если вы считаете себя хорошим программистом, ну, скажем так, вы оцениваете свой уровень выше среднего, прошу не читать эту статью. Эта статья предназначена для менеджеров программных проектов. С ними я хочу обсудить хотя и важные, но скучные для программистов вопросы, связанные с методологией статического анализа кода.
Читать полностью »
Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N3
2017-03-24 в 13:21, admin, рубрики: bugs, c/c++, C#, CoreCLR, entity framework, freebsd, msbuild, open source, pvs-studio, Блог компании PVS-Studio, открытый код, ошибки в коде, статический анализ кода
Мы решили в меру своих сил регулярно искать и устранять потенциальные уязвимости и баги в различных проектах. Можно назвать это помощью open-source проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
Читать полностью »
Как и почему статические анализаторы борются с ложными срабатываниями
2017-03-20 в 11:23, admin, рубрики: C, c/c++, c++, pvs-studio, Блог компании PVS-Studio, информационная безопасность, ложные срабатывания, с/с++, Си, статический анализ кода, статический анализатор кода, метки: с/с++
В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализатором как особый случай, на который сознательно не выдаётся предупреждение. Если честно, я не ожидал такого всплеска комментариев на тему того, что анализатор может очень редко, но не выдать предупреждение на ошибку из-за реализованных в нём механизмов отсечения ложных срабатываний. Борьба с ложными срабатываниями настолько большая составляющая любого статического анализатора, что как-то даже не понятно, что тут собственно обсуждать. Это надо делать и всё. Такие механизмы существуют не только в нашем анализаторе, но и в других анализаторах/компиляторах. Тем не менее, раз этот момент вызвал столь бурное обсуждение, я думаю, стоит уделить ему внимание, поэтому и написал эту поясняющую статью.
Читать полностью »