Отчёт о разработке Linux-версии PVS-Studio и результаты проверки LLVM (реклама)
15 ноября 2016 года
Разработчики коммерческого статического анализатора PVS-Studio опубликовали отчёт о разработке Linux-версии продукта и продолжили проверку открытых проектов. В статье рассказано, как после 10 лет выпуска продукта для Windows, было решено адаптировать его для Linux, и какие подводные камни пришлось обойти для решения этой задачи. Около трёх лет назад консольное ядро анализатора PVS-Studio было портировано на Linux за пару месяцев, но создание на его основе конечного программного продукта потребовало огромной работы, решения непредвиденных проблем и учёта различных нюансов, таких как поддержка расширений GCC и интеграция с различными сборочными инструментариями.
Что касается работы по выявлению ошибок в открытом ПО, то следом за проведённой в августе проверкой набора компиляторов GCC, анализ ошибок был проведён и для кодовой базы LLVM. Для проверки LLVM была использована Linux-версия PVS-Studio, а для отслеживания вызовов компилятора задействован формат JSON Compilation Database. Несмотря на то, что LLVM ранее уже проверялся в PVS-Studio в 2011 и 2012 годах, повторная проверка выявила порцию новых ошибок. В частности, обращается внимание на проблемы с использованием небитовых полей, досрочным завершением циклов, путаницей с указанием операторов "||" и "&&", опечатками в определении условий, возвратом функцией ссылки на временный локальный объект, повторным присваиванием, подозрительным переопределением указателей, путаницей при использовании release() и reset(), разыменованием нулевого указателя и т.п
Также можно отметить публикацию в свободном доступе электронной книги "Главный вопрос программирования, рефакторинга и всего такого", в которой Андрей Карпов, технический директор компании "СиПроВер", делится своим опытом разбора ошибок в программах на C/C++ и приводит 42 рекомендации, которые помогут избежать ошибок при программировании и повысить качество кода. Каждая рекомендация сопровождается практическим примером.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.