Как правило, при обсуждении диагностических возможностей PVS-Studio за кадром остаются рекомендации, выдаваемые анализатором по поводу микрооптимизаций Си и Cи++ кода. Конечно, микрооптимизации не так важны, как диагностики выявляющие ошибки, но про них тоже интересно поговорить.
Читать полностью »
Рубрика «pvs-studio» - 22
Поговорим о микрооптимизациях на примере кода Tizen
2017-07-17 в 7:02, admin, рубрики: C, c/c++, c++, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, код, микрооптимизация, оптимизация кода, оптимизация программ, разработка операционных систем, Разработка под Tizen, рефакторинг, Си, си/си++, статический анализ кода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 и была посвящена возможному сотрудничеству. Встреча перенесена на неопределённый срок, поэтому я решил не тратить время и трансформировать материал презентации в статью. Запасайтесь вкусняшками и напитками, нас ждёт длинный программистский триллер.
Читать полностью »
Статический анализ как часть процесса разработки Unreal Engine
2017-06-27 в 7:49, admin, рубрики: c++, epic games, game development, Gamedev, open source, pvs-studio, static code analysis, Unreal Engine, Unreal Engine 4, Блог компании PVS-Studio, качество кода, ошибки в коде, процесс разработки, разработка игр, сотрудничетсво, статический анализ кода, Тестирование игр
Проект Unreal Engine развивается — добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта — появление в коде новых ошибок, которые желательно выявлять как можно раньше. Одним из способов сокращения количества ошибок является использование статического анализатора кода PVS-Studio. Причем анализатор также быстро развивается и учится находить новые паттерны ошибок, некоторые из которых будут рассмотрены в этой статье. Если вас заботит качество кода ваших проектов, то эта статья для вас.
Читать полностью »
Головная боль от использования математического софта
2017-06-26 в 6:41, admin, рубрики: C, c++, open source, pvs-studio, SciLab, static code analysis, Блог компании PVS-Studio, Компиляторы, разработка под windows, статический анализ кода
Так получилось, что в один период времени я обсуждал в интернете, казалось бы, разные темы: бесплатные альтернативы Matlab для университетов и студентов, и поиск ошибок в алгоритмах с помощью статического анализа кода. Все эти обсуждения объединило ужасное качество кода современных программ. В частности, качество софта для математиков и учёных. Тут же возникает вопрос о доверии к расчётам и исследованиям, проведённым с помощью таких программ. Попробуем поразмыслить на эту тему и поискать ошибки.
Читать полностью »
Как PVS-Studio может помочь в поиске уязвимостей?
2017-06-20 в 7:33, admin, рубрики: C, c++, CVE, cwe, illumos, iOS, mysql, open source, pvs-studio, security, static code analysis, vulnerabilities, weaknesses, Блог компании PVS-Studio, информационная безопасность, статический анализ кода, уязвимости
Уязвимость в терминах компьютерной безопасности — недостаток в системе, позволяющий намеренно нарушить её целостность или вызвать неправильную работу. Как показывает практика, даже, казалось бы, незначительный баг может являться серьёзной уязвимостью. Уязвимостей можно избежать, используя различные методики валидации и верификации программного обеспечения, в том числе — статический анализ. О том, как с задачей поиска уязвимостей справляется PVS-Studio, и пойдёт речь.
Читать полностью »
Notepad++: проверка кода пять лет спустя
2017-06-07 в 6:04, admin, рубрики: c++, notepad++, open source, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio, Компиляторы, разработка под windows, статический анализ кода
В этом году статическому анализатору PVS-Studio исполнилось 10 лет. Правда, стоит уточнить, что 10 лет назад он назывался Viva64. И есть ещё одна интересная дата: прошло 5 лет с момента предыдущей проверки кода проекта Notepad++. С тех пор PVS-Studio был очень сильно доработан: добавлено около 190 новых диагностик, усовершенствованы старые. Впрочем, ожидать огромного количества ошибок в Notepad++ не стоит. Это небольшой проект, состоящий всего из 123 файлов с исходным кодом. Тем не менее, в коде найдены ошибки, которые будет полезно исправить.
Читать полностью »
Предоставляем анализатор PVS-Studio экспертам безопасности
2017-06-06 в 12:44, admin, рубрики: c/c++, pvs-studio, tizen, Блог компании PVS-Studio, информационная безопасность, ошибки в коде, статический анализ кода, уязвимости, уязвимость, экспертНеожиданно для самих себя мы поняли, что можем взаимовыгодно сотрудничать с экспертами в сфере информационной безопасности. Те из них, кто занимается поиском уязвимостей в коде приложений, могут воспользоваться бесплатной версией анализатора PVS-Studio для своих исследований. В свою очередь, если будут найдены уязвимости, наш анализатор приобретёт большую популярность. PVS-Studio может быть использован для исследований проектов, написанных на языке C и C++.
Читать полностью »
Зло живёт в функциях сравнения
2017-05-19 в 13:44, admin, рубрики: bugs, C, C#, c++, pvs-studio, Блог компании PVS-Studio, зло, код, ошибки в коде, ошибки в программе, Программирование, психология программирования, Си, юнит-тесты
Возможно, читатели помнят мою статью под названием «Эффект последней строки». В ней идёт речь о замеченной мной закономерности: ошибка, чаще всего, допускается в последней строке однотипных блоков текста. Теперь я хочу рассказать о новом интересном наблюдении. Оказывается, программисты тяготеют к тому, чтобы допустить ошибку в функциях сравнения двух объектов. Такое утверждение выглядит неправдоподобным, однако, я покажу огромное количество примеров ошибок, которые шокируют читателя. Читайте новое исследование, будет интересно и страшно.
Читать полностью »
Сравнение PVS-Studio C# и статического анализатора, встроенного в Visual Studio, на базе кода проекта CruiseControl.NET
2017-05-10 в 14:25, admin, рубрики: .net, C#, open source, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio, разработка под windows
Недавно я проводил сравнение C# анализаторов PVS-Studio и SonarQube на базе кода проекта PascalABC.NET. Исследование оказалось довольно интересным, поэтому я решил продолжить работу в данном направлении. В этот раз я сравниваю C# анализатор PVS-Studio со статическим анализатором, встроенным в Visual Studio. На мой взгляд, это весьма достойный соперник. Несмотря на то, что анализатор из комплекта Visual Studio, в первую очередь, рассчитан не на поиск ошибок, а на улучшение качества кода, это вовсе не означает, что с его помощью нельзя найти реальные ошибки, хотя это и трудно. Давайте разберемся, какие же особенности работы анализаторов будут выявлены в ходе нашего исследования на этот раз. Вперёд!
Читать полностью »
Проверяем код динамического анализатора Valgrind с помощью статического анализатора
2017-05-04 в 8:44, admin, рубрики: C, pvs-studio, valgrind, аудит кода, Блог компании PVS-Studio, динамический анализ кода, информационная безопасность, ошибки в коде, Разработка под Linux, Си, статический анализ кода, метки: динамический анализ кодаСразу скажу, что статья пишется вовсе не для того, чтобы показать, что статический анализ работает лучше, чем динамический. Такое утверждение будет неверным, так же, как и обратное. Инструменты статического и динамического анализа дополняют друг друга, а не конкурируют между собой. У тех, и у тех есть сильные и слабые стороны. Некоторые ошибки не могут обнаруживать динамические анализаторы, а некоторые — не могут найти статические. Поэтому, следует отнестись к этой заметке просто, как к очередной демонстрации возможностей PVS-Studio, а не как к сравнению двух методологий.
Читать полностью »