Одной из проблем C++ является большое количество конструкций, поведение которых не определено или просто неожиданно для программиста. С такими ошибками мы часто сталкиваемся при использовании статического анализатора кода на разных проектах. Но, как известно, лучше всего находить ошибки ещё на этапе компиляции. Посмотрим, какие техники из современного C++ позволяют писать не только более простой и выразительный код, но и сделают наш код более безопасным и надёжным.
Читать полностью »
Рубрика «pvs-studio» - 28
Как избежать ошибок, используя современный C++
2016-09-15 в 9:42, admin, рубрики: C, c++, c++11, C++14, c++17, modern c++, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, Программирование, статический анализ кодаНаходим ошибки в коде компилятора GCC с помощью анализатора PVS-Studio
2016-08-31 в 13:47, admin, рубрики: bugs, C, c++, gcc, GNU Compiler Collection, pvs-studio, PVS-Studio for Linux, static code analysis, Блог компании PVS-Studio, информационная безопасность, ошибки в коде, Разработка под Linux, Си, статический анализ кодаЯ регулярно проверяю различные открытые проекты, чтобы продемонстрировать возможности статического анализатора кода PVS-Studio (C, C++, C#). Настало время компилятора GCC. Бесспорно, GCC — это очень качественный и оттестированный проект, поэтому найти в нём хотя бы несколько ошибок уже большое достижение для любого инструмента. К моей радости, PVS-Studio справился с этой задачей. Никто не застрахован от опечаток и невнимательности. Именно поэтому PVS-Studio может стать вашей дополнительной линией обороны на фронте бесконечной войны с багами.
Читать полностью »
Проверяем исходный код MSBuild с помощью PVS-Studio
2016-08-25 в 12:13, admin, рубрики: .net, C#, microsoft, msbuild, open source, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio
Работая над развитием статического анализатора исходного кода PVS-Studio, мы часто сталкиваемся с необходимостью проверки на наличие ошибок больших открытых проектов от именитых разработчиков. Тот факт, что даже в таких проектах удается найти ошибки, делает нашу работу гораздо более осмысленной. К сожалению, все допускают ошибки. Как бы грамотно ни была выстроена система контроля качества выпускаемого программного кода, нет абсолютно никакой возможности избежать особенностей «человеческого фактора». До тех пор, пока разработкой программ занимаются люди, актуальность использования инструментов для поиска ошибок в коде, таких как PVS-Studio, не уменьшится. Сегодня мы будем искать ошибки в исходном коде MSBuild, который, увы, тоже не идеален.
Читать полностью »
Анализируем ошибки в открытых компонентах Unity3D
2016-08-23 в 12:06, admin, рубрики: C#, open source, pvs-studio, static code analysis, unity3d, Блог компании PVS-Studio, Компиляторы, разработка игр, статический анализ кодаUnity3D — один из самых перспективных и быстроразвивающихся игровых движков на текущий момент. Время от времени, в официальном репозитории появляются новые библиотеки и компоненты, многие из которых до недавнего времени были недоступны в виде исходников. К сожалению, команда разработчиков Unity3D предоставила на растерзание общественности не весь исходный код проекта, а только некоторые его компоненты, библиотеки и демки. В этой статье мы попробуем найти всевозможные ошибки и опечатки в них, используя для этого статический анализатор PVS-Studio.
Читать полностью »
По просьбе читателей, проверяем код LDAP-сервера ReOpenLDAP
2016-08-22 в 8:07, admin, рубрики: C, open source, pvs-studio, ReOpenLDAP, static code analysis, Блог компании PVS-Studio, системное программирование, статический анализ кодаВ этой статье я хочу рассказать о проверке проекта ReOpenLDAP. Этот проект был реализован для решения проблем, возникших при эксплуатации OpenLDAP в инфраструктуре ПАО МегаФон — крупнейшего в России оператора мобильной связи. Сейчас ReOpenLDAP успешно работает в филиалах МегаФон по всей России, поэтому было бы интересно проверить столь высоконагруженный проект при помощи статического анализатора PVS-Studio.
Мы нашли 10000 ошибок в различных открытых проектах
2016-08-18 в 12:05, admin, рубрики: bugs, open source, pvs-studio, база ошибок, Блог компании PVS-Studio, открытый код, ошибки в программе, сделаем мир лучше, статический анализ кодаС целью популяризации методологии статического анализа в целом и анализатора PVS-Studio в частности мы регулярно проверяем различные открытые проекты. Найденные в них баги отлично демонстрируют, что никто не застрахован от опечаток, невнимательности и других ошибок. Именно никто, и подтверждения тому мы находим в таких проектах, как Microsoft Code Contracts, Qt, ядро Linux, CryEngine, VirtualBox, LibreOffice, Firefox, Boost, Tor и так далее. На данный момент нами проверено 262 проекта. И вот свершилось, мы нашли и выписали в базу 10000 багов.
Читать полностью »
Как статический анализ может дополнять юнит-тестирование на примере NUnit
2016-08-17 в 11:25, admin, рубрики: .net, C#, nunit, pvs-studio, tdd, Блог компании PVS-Studio, разработка через тестирование, статический анализ кода, юнит-тестирование, юнит-тестыДовольно часто при обсуждении средств статического анализа для C# проектов программисты пишут о том, что в этом нет необходимости, потому что с помощью юнит-тестирования они отлавливают большинство ошибок. Я решил проверить, насколько хорошо протестирован один из самых известных юнит-тест фреймворков — NUnit, и посмотреть найдёт ли там что-нибудь наш анализатор.
Читать полностью »
В ожидании Linux версии: проверка кода графического редактора Inkscape
2016-08-15 в 14:40, admin, рубрики: c++, inkscape, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, обработка изображений, Программирование, статический анализ кодаВ этой статье речь пойдет о проверке еще одного известного open source проекта — векторного графического редактора Inkscape 0.92. Проект развивается уже более 12 лет и предоставляет множество возможностей по работе с различными форматами векторных иллюстраций. За это время его кодовая база выросла до 600 тысяч строк, и пришло время проверить его с помощью статического анализатора PVS-Studio.
Читать полностью »
Долгожданная проверка CryEngine V
2016-08-03 в 14:20, admin, рубрики: c++, CryEngine, crytek, game development, open source, pvs-studio, Блог компании PVS-Studio, обзор кода, Программирование, разработка игрВ мае 2016 года немецкая компания Crytek решила опубликовать на Github исходный код игрового движка CryEngine V. Игровой движок написан на языке C++ и сразу привлёк внимание как сообщества open-source разработчиков, так и команду разработчиков статического анализатора PVS-Studio, выполняющую проверку качества кода открытых проектов. На CryEngine разных версий сделано много отличных игр от разных игровых студий, и теперь движок стал доступен ещё большему числу разработчиков. Статья содержит обзор ошибок, выявленных с помощью статического анализатора кода.
Читать полностью »
Стряхнём пыль с глобуса: проверяем проект NASA World Wind
2016-08-02 в 9:02, admin, рубрики: .net, bugs, C#, NASA World Wind, pvs-studio, Блог компании PVS-Studio, все ошибаются, качество кода, ошибки в программе, Совершенный код, статический анализ кодаИногда полезно оглянуться и посмотреть, как мог помочь анализатор в старых проектах, и каких ошибок можно своевременно избежать, если использовать анализатор регулярно. В этот раз выбор пал на проект 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.