Так получилось, что в один период времени я обсуждал в интернете, казалось бы, разные темы: бесплатные альтернативы Matlab для университетов и студентов, и поиск ошибок в алгоритмах с помощью статического анализа кода. Все эти обсуждения объединило ужасное качество кода современных программ. В частности, качество софта для математиков и учёных. Тут же возникает вопрос о доверии к расчётам и исследованиям, проведённым с помощью таких программ. Попробуем поразмыслить на эту тему и поискать ошибки.
Читать полностью »
Рубрика «pvs-studio» - 22
Головная боль от использования математического софта
2017-06-26 в 6:41, admin, рубрики: C, c++, open source, pvs-studio, SciLab, static code analysis, Блог компании PVS-Studio, Компиляторы, разработка под windows, статический анализ кодаКак 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, а не как к сравнению двух методологий.
Читать полностью »
Поддержка Visual Studio 2017 и Roslyn 2.0 в PVS-Studio: иногда использовать готовые решения не так просто
2017-05-03 в 8:33, admin, рубрики: .net, C#, msbuild, plugin, pvs-studio, roslyn, Visual Studio, visual studio 2017, Блог компании PVS-Studio, дьявол в деталях, разработка под windowsВ данной статье я хочу рассказать о том, с какими проблемами столкнулись разработчики PVS-Studio при поддержке новой версии Visual Studio. Кроме того, постараюсь ответить на вопрос: почему поддержка нашего C# анализатора, основанного на «готовом решении» (в данном случае, это Roslyn), оказывается в некоторых ситуациях более затратной, чем нашего «самописного» С++ анализатора.
Читать полностью »
Как используя 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-19 в 8:30, admin, рубрики: c++, devops, pvs-studio, Блог компании PVS-Studio, заблуждения, качество кода, код, менеджмент проектов, статический анализ кода, Управление продуктом, управление проектами, управление разработкой
Популяризируя статический анализатор кода PVS-Studio, мы обычно пишем статьи для программистов. Однако, на некоторые вещи программисты смотрят одностороннее. Именно поэтому и существуют менеджеры программных проектов, которые могут управлять процессом развития проекта направлять его в нужное русло. Я решил написать несколько статей, целевой аудиторией которых являются менеджеры программных проектов. Эти статьи помогут им лучше ориентироваться в вопросах использования методологии статического анализа кода. Сейчас мы рассмотрим ложный постулат: «ошибки кодирования несущественны».
Читать полностью »