Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
Зависит ли результат статического анали…

Зависит ли результат статического анализа кода от используемого компилятора?

17 Дек 2009

В очередном обсуждении статических анализаторов кода мы как обычно :) упомянули наш инструмент PVS-Studio. Один из участников дискуссии задал вопрос: "А зависит ли вообще результат работы анализатора кода от используемого компилятора?". Ответ на этот вопрос значительно более сложен, чем кажется на первый взгляд. Поэтому и появилась эта запись.

Среды разработки Visual Studio 2005 и 2008 более не поддерживаются. Вы можете ознакомиться со списком поддерживаемых сред разработки в разделе документации "Системные требования анализатора PVS-Studio".

Короткий вариант ответа такой. Статический анализатор кода - это инструмент, который полностью не зависит от компилятора, использует свои технологии для разбора кода и поиска проблем в нем. Но это ведь в теории, а что на практике?

Во-первых, разработчики статических анализаторов кода очень часто "любят" одни средства разработки и оставляют в стороне (конечно же не заслуженно) другие. Например, если инструмент ориентируется на Windows-платформу, то очевидно работать с GCC он, скорее всего, не будет. Да даже и в рамках Windows-платформы инструмент, ориентированный на продукцию Microsoft, вряд ли сходу заработает с продукцией Embarcadero (это продолжатели дела Borland). Ведь если говорить, к примеру, о языке Си++, то производители разных компиляторов всегда имеют некоторые несовместимые нюансы. Возможно дело в размере стандарта Си++, возможно - в нюансах маркетинговых войн. Тем не менее, это так.

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

В-третьих, даже использование статического анализатора с одним и тем же средством разработки (компилятором), но разных версий также имеет свои нюансы. Например, у нас есть тесты для PVS-Studio, это порядка 30 приложений (90 проектов) в исходных кодах. Полная проверка этого набора с помощью нашего инструмента занимает в Visual Studio 2005 полтора часа, а проверка в Visual Studio 2008 - два часа. Разница в 1.4 раза! Откуда берется эта разница? Ответ получить очень просто, если выполнить препроцессирование всех проверяемых файлов и посмотреть получившийся размер. Сейчас это 1278 файлов. Размер препроцессированных в Visual Studio 2005 файлов составляет 4850 Мбайт, а в Visual Studio 2008 - 6850 Мбайт. Разница как раз в те самые 1.4 раза. То есть при абсолютно идентичном пользовательском коде за счет разницы в заголовочных файлах отличие конечного кода, который обрабатывает анализатор, составляет 1.4 раза.

Так что получается, что от используемого компилятора очень зависит, что же проверяет анализатор кода.

Популярные статьи по теме
Обрабатывать ли в PVS-Studio вывод других инструментов?

Дата: 26 Май 2022

Автор: Андрей Карпов

Анализатор PVS-Studio умеет "схлопывать" повторяющиеся предупреждения. Предоставляет возможность задать baseline, что позволяет легко внедрять статический анализ в legacy-проекты. Стоит ли предостави…
15000 ошибок в открытых проектах

Дата: 24 Май 2022

Автор: Андрей Карпов

Количество багов в нашей коллекции перевалило за отметку 15000. Именно такое количество ошибок обнаружила команда PVS-Studio в различных открытых проектах. Особенно интересно, что это всего лишь побо…
Комментарии в коде как вид искусства

Дата: 04 Май 2022

Автор: Сергей Хренов

Приветствую всех программистов, а также сочувствующих. Кто из нас хотя бы раз в жизни не оставлял комментарии в коде? Был ли это ваш код, а может, чужой? Что за комментарии вы написали: полезные или …
Visual Studio 2022 стильно и свежо. История о её поддержке в PVS-Studio

Дата: 15 Фев 2022

Автор: Николай Миронов

Кажется, анонс Visual Studio 2022 был только недавно, и вот она уже вышла. Это означало ровно одно – поддержать данную IDE нужно в ближайшем релизе PVS-Studio. О том, с какими сложностями пришлось ст…
Лучшие срабатывания статического анализатора

Дата: 29 Окт 2021

Автор: Максим Звягинцев

У всех, кто запускал статический анализатор в первый раз на большом проекте, был небольшой шок по поводу сотен, тысяч или даже десятков тысяч предупреждений. Как-то грустно становится после такого. Т…

Комментарии (0)

Следующие комментарии
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять