Как стать автором
Обновить
308.26
PVS-Studio
Статический анализ кода для C, C++, C# и Java
Сначала показывать

По просьбе читателей, проверяем код LDAP-сервера ReOpenLDAP

Время на прочтение7 мин
Количество просмотров8.1K
В этой статье я хочу рассказать о проверке проекта ReOpenLDAP. Этот проект был реализован для решения проблем, возникших при эксплуатации OpenLDAP в инфраструктуре ПАО МегаФон — крупнейшего в России оператора мобильной связи. Сейчас ReOpenLDAP успешно работает в филиалах МегаФон по всей России, поэтому было бы интересно проверить столь высоконагруженный проект при помощи статического анализатора PVS-Studio.


Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии9

Мы нашли 10000 ошибок в различных открытых проектах

Время на прочтение2 мин
Количество просмотров13K
Да, 10000 ошибок!С целью популяризации методологии статического анализа в целом и анализатора PVS-Studio в частности мы регулярно проверяем различные открытые проекты. Найденные в них баги отлично демонстрируют, что никто не застрахован от опечаток, невнимательности и других ошибок. Именно никто, и подтверждения тому мы находим в таких проектах, как Microsoft Code Contracts, Qt, ядро Linux, CryEngine, VirtualBox, LibreOffice, Firefox, Boost, Tor и так далее. На данный момент нами проверено 262 проекта. И вот свершилось, мы нашли и выписали в базу 10000 багов.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии18

Как статический анализ может дополнять юнит-тестирование на примере NUnit

Время на прочтение3 мин
Количество просмотров5.5K
PVS-Studio and NUnitДовольно часто при обсуждении средств статического анализа для C# проектов программисты пишут о том, что в этом нет необходимости, потому что с помощью юнит-тестирования они отлавливают большинство ошибок. Я решил проверить, насколько хорошо протестирован один из самых известных юнит-тест фреймворков — NUnit, и посмотреть найдёт ли там что-нибудь наш анализатор.
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии8

Космическая ошибка: $370 000 000 за Integer overflow

Время на прочтение9 мин
Количество просмотров110K
Пуск.
37 секунд полета… бабах!
10 лет и 7 миллиардов долларов, потраченных на разработку.
Четыре полуторатонных спутника научной программы Cluster (изучение взаимодействия солнечного излучения с магнитным полем Земли) и ракета носитель Ariane 5 превратились в «конфети» 4 июня 1996 года.
А вину свалили на программистов.



Предыдущая модель — ракета Ariane 4 — успешно запускалась более 100 раз. Что пошло не так?

Чтобы штурмовать небеса, нужно хорошо знать язык Ада.
Всего голосов 113: ↑107 и ↓6+101
Комментарии95

В ожидании Linux версии: проверка кода графического редактора Inkscape

Время на прочтение13 мин
Количество просмотров16K
В этой статье речь пойдет о проверке еще одного известного open source проекта — векторного графического редактора Inkscape 0.92. Проект развивается уже более 12 лет и предоставляет множество возможностей по работе с различными форматами векторных иллюстраций. За это время его кодовая база выросла до 600 тысяч строк, и пришло время проверить его с помощью статического анализатора PVS-Studio.
Читать дальше →
Всего голосов 61: ↑51 и ↓10+41
Комментарии48

Долгожданная проверка CryEngine V

Время на прочтение27 мин
Количество просмотров30K
В мае 2016 года немецкая компания Crytek решила опубликовать на Github исходный код игрового движка CryEngine V. Игровой движок написан на языке C++ и сразу привлёк внимание как сообщества open-source разработчиков, так и команду разработчиков статического анализатора PVS-Studio, выполняющую проверку качества кода открытых проектов. На CryEngine разных версий сделано много отличных игр от разных игровых студий, и теперь движок стал доступен ещё большему числу разработчиков. Статья содержит обзор ошибок, выявленных с помощью статического анализатора кода.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии65

Стряхнём пыль с глобуса: проверяем проект NASA World Wind

Время на прочтение21 мин
Количество просмотров9.4K
PVS-Studio and NASA World WindИногда полезно оглянуться и посмотреть, как мог помочь анализатор в старых проектах, и каких ошибок можно своевременно избежать, если использовать анализатор регулярно. В этот раз выбор пал на проект NASA World Wind, который до 2007 года разрабатывался на языке C#.

NASA World Wind — это интерактивный глобус, позволяющий увидеть любое место на Земле. Для работы проект использует базу публичных снимков со спутника Landsat и проект моделирования рельефа Shuttle Radar Topography Mission. Первые версии проекта создавались на языке С#. Позже проект продолжил своё развитие на языке Java. Последняя выпущенная на C# версия — 1.4. Хотя C# версия уже много лет как заброшена, это не помешает нам проверить проект и оценить качество кода, разработчиком которого является NASA Ames Research Center.

Зачем мы проверили старый проект? Нам давно предлагали проверить что-то из проектов NASA и вот мы случайно набрели на этот проект. Да, эта проверка не принесёт никакой пользы проекту. Но такой цели в этот раз мы и не ставили. Мы просто хотели в очередной раз продемонстрировать пользу, которую может приносить статический анализатор кода PVS-Studio при разработке, в том числе и компании NASA.

Читать дальше →
Всего голосов 36: ↑30 и ↓6+24
Комментарии5

PVS-Studio признаётся в любви к Linux

Время на прочтение10 мин
Количество просмотров28K
PVS-Studio признаётся в любви к LinuxЭто заметка о любви. О любви статического анализатора кода PVS-Studio к замечательной открытой операционной системе Linux. Эта любовь молода, трогательная и ранима. Этой любви нужно помочь укрепиться. Вы поможете, если заранее запишитесь в добровольцы для тестирования beta-версии PVS-Studio for Linux.
Читать дальше →
Всего голосов 103: ↑86 и ↓17+69
Комментарии355

Желания сбываются: интересные Си++ конференции России

Время на прочтение2 мин
Количество просмотров6K
Си++ конференция в РоссииКак известно весь ужас жизни в том, что мечты сбываются. Беда в том, что сбываются они не так, как хотелось. Однако в это раз я, видимо, правильно подошел к загадыванию желания, правильно визуализировал его и даже сформулировал письменно — "Хочу свой Луна-Парк с Fortran и Си". И вот свершилось: я могу заявить, что в России стабильно начали проводиться конференции по тематики Си++. Их организатором является замечательный человек — Сергей Платонов. В этой заметке я хочу выразить ему благодарность и порекламировать очередное мероприятие: C++ Siberia 2016, которое пройдет 26-27 августа в Технопарке Новосибирского Академгородка.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии23

Команда PVS-Studio готовит технический прорыв, ну а пока перепроверим Blender

Время на прочтение14 мин
Количество просмотров16K
PVS-Studio, Blender, C/C++Статический анализ наиболее полезен при регулярных проверках. Особенно для таких активно развивающихся проектов как Blender. Пришло время проверить его вновь, и узнать, какие подозрительные места удастся найти на этот раз.

Введение


Blender — профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки и монтажа видео со звуком, также использующийся для создания интерактивных игр.

Проект уже проверялся ранее. Результаты проверки версии 2.62 изложены в статье "Проверка проекта Blender с помощью PVS-Studio".

Со времени прошлой проверки размер исходного кода вместе с дополнительными библиотеками увеличился до 77 мегабайт. А его объём вырос до 2206 KLOC. На момент предыдущей поверки размер проекта составлял 68 мегабайт (2105 KLOC).
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии78

Проверяем исходный код FlashDevelop с помощью PVS-Studio

Время на прочтение11 мин
Количество просмотров6.3K
Для проверки качества диагностик нашего статического анализатора и его рекламы мы регулярно анализируем проекты с открытым исходным кодом. Разработчики проекта FlashDevelop сами попросили нас проверить их продукт, что мы с радостью и сделали.

Введение


FlashDevelop — популярная среда разработки Flash-приложений, поддерживающая Action Script версии 2 и 3, Haxe, JavaScript, HTML, PHP, C#, и обладающая функционалом, присущим современным редакторам кода, например, автодополнение кода, встроенная поддержка svn, git, mercurial, шаблоны, сторонние плагины, темы подсветки синтаксиса и многое другое. Примечательно, что FlashDevelop использовали Fireaxis Games при разработке XCOM: Enemy Unknown.
Читать дальше →
Всего голосов 20: ↑14 и ↓6+8
Комментарии9

Сортировка предупреждений статических анализаторов по приоритету при поиске и исправлении программных ошибок

Время на прочтение16 мин
Количество просмотров3.2K
За 2015 год в Национальной базе данных уязвимостей США (National Vulnerability Database, NVD) было зарегистрировано 6,488 новых программных уязвимостей, всего же в ней насчитывается 74,885 уязвимостей, найденных за период 1988-2016 гг. Инструменты статического анализа проверяют исходный код программ на наличие дефектов, в том числе потенциальных уязвимостей защиты, и выдают диагностические сообщения (предупреждения), в которых указывается местоположение предполагаемого дефекта, его характер, и, как правило, дополнительная контекстуальная информация. Достоверность таких предупреждений затем оценивается пользователем. Трудозатраты на проверку всех предупреждений и исправление всех подтвержденных ошибок вручную зачастую значительно превосходят бюджет и сроки проекта. По этой причине пользователи нуждаются в инструментах, которые позволили бы сортировать предупреждения по степени важности, тем самым определяя порядок их проверки. Настоящая статья посвящена проводимому нами исследованию данного вопроса с использованием классификационных моделей, призванных помочь специалистам по анализу и программистам в классификации предупреждений по приоритету и определении оптимального порядка исправления соответствующих ошибок.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии1

Accord.Net: ищем ошибку в коде, из-за которой машины поработят человечество

Время на прочтение16 мин
Количество просмотров13K

Статьи о проверке проектов с открытым исходным кодом — вещь полезная. Кто-то, в том числе и разработчики, узнает об ошибках, содержащихся в проекте, кто-то узнает о методологии статического анализа и начнет применять её для повышения качества своего кода. Для нас же это прекрасный способ популяризации анализатора PVS-Studio, а заодно возможность его дополнительного тестирования. На этот раз я проверил платформу Accord.Net и нашёл в коде много интересных фрагментов.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии13

Как не наступить на грабли, работая с сериализацией

Время на прочтение17 мин
Количество просмотров31K


Несмотря на то, что использовать механизм сериализации при программировании на C# достаточно просто и удобно, есть моменты, которые стоит учитывать. О том, на какие грабли можно наступить, работая с сериализацией, о примерах кода, в котором эти грабли припрятаны, а также о том, как PVS-Studio поможет вам избежать шишек на лбу, и будет эта статья.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии12

PVS-Studio спешит на помощь CERN: проверка проекта Geant4

Время на прочтение12 мин
Количество просмотров10K
PVS-Studio спешит на помощь CERNПроект Geant4 продолжает развиваться, поэтому интересно вновь проверить его с помощью статического анализатора кода PVS-Studio. На этот раз проверке будет подвергнута версия 10.2 (предыдущая проверка относилась к версии 10.0-beta).
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии10

Проверяем исходный код WPF Samples от Microsoft

Время на прочтение15 мин
Количество просмотров13K
С целью популяризации анализатора кода PVS-Studio, который научился проверять помимо C++, ещё и C# проекты, мы решили проверить исходный код WPF примеров, предлагаемых компанией Microsoft.



С выходом Windows Vista, была представлена новая система для построения красивых клиентских приложений — Windows Presentation Foundation (WPF). Данная графическая подсистема включена в состав .NET Framework начиная с версии 3.0. Она использует язык разметки XAML и пришла на смену устаревшему WinForms. На мой взгляд, основным недостатком WinForms было то, что он осуществлял всю прорисовку на центральном процессоре. WPF поступала более логически и отдавала прорисовку своих компонентов DirectX. Сейчас WPF практически вытеснило WinForms и позволяет делать универсальные интерфейсы сразу для трех платформ (PC, XBOXOne, Winphone).
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии19

Единорог, который смог

Время на прочтение6 мин
Количество просмотров15K
The Little Unicorn That CouldОдна из команд разработчиков Microsoft уже использует в работе анализатор PVS-Studio. Это хорошо, но недостаточно. Поэтому я продолжаю демонстрировать, какую пользу может приносить статический анализ кода на примере проектов Microsoft. Три года назад мы проверяли проект Casablanca и не смогли в нём ничего обнаружить. За это проект был отмечен медалью «безбажный код». Прошло время, проект развивался и рос. В свою очередь, анализатор PVS-Studio существенно продвинулся в возможностях анализа кода. И наконец я могу написать статью об ошибках, которые анализатор выявляет в проекте Casablanca (C++ REST SDK). Ошибок мало, но то, что теперь их достаточно для написания статьи, говорит о эффективности PVS-Studio.
Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии14

Проверка проекта OpenJDK с помощью PVS-Studio

Время на прочтение13 мин
Количество просмотров11K
Соавтор: Роман Фомичёв.

В настоящее время многие проекты открывают свой исходный код и разрешают делать изменения в нем сообществу заинтересованных разработчиков. Мы проверим один из таких проектов — OpenJDK, и поможем разработчикам улучшить их код.

Введение


OpenJDK (Open Java Development Kit) — проект по созданию реализации платформы Java (Java SE), состоящий исключительно из свободного и открытого исходного кода. Проект стартовал в 2006 году усилиями компании Sun. В проекте используются несколько языков — C, C++ и Java. Нас интересуют исходные коды написанные на С и С++. Для проверки возьмем 9-ю версию OpenJDK. Код этой реализации Java платформы доступен в репозитории Mercurial.
Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии17

Занимательный C#

Время на прочтение8 мин
Количество просмотров34K
Занимательный C#

Для оценки качества диагностик анализатора C# кода PVS-Studio мы проверяем большое количество различных проектов. Т.к. проекты пишутся разными людьми в различных командах в разных компаниях, нам приходится сталкиваться с различными стилями, сокращениями, да и просто возможностями, которые предлагает язык C# программистам. В этой статье я хочу обзорно пройтись по некоторым моментам, которые предлагает нам замечательный язык C#, и по тем проблемам, на которые можно наткнуться при его использовании.

Picture 1

Подробности
Всего голосов 41: ↑39 и ↓2+37
Комментарии37

Проверяем исходный код 7-Zip с помощью PVS-Studio

Время на прочтение10 мин
Количество просмотров30K
Одной из программ, которая позволяет решить задачу сжатия данных, является популярный файловый архиватор 7-Zip, я и сам частенько его использую. Читатели давно обращались к нам с просьбой проверить код данного приложения. Что ж, пришло время заглянуть в его исходники и посмотреть, что интересного сможет найти PVS-Studio.



Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии25

Информация

Сайт
pvs-studio.com
Дата регистрации
Дата основания
2008
Численность
31–50 человек
Местоположение
Россия