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

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

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

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

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

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

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


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

>
>
Использование анализатора PVS-Studio в …

Использование анализатора PVS-Studio в процессе инкрементальной сборки в Microsoft Visual Studio 2010

20 Июн 2011

Одним из нововведений в последних версиях MSBuild/Visual Studio для компиляторов Visual C++ стала новая система минимальной сборки (также известная как инкрементная сборка), основанная на отслеживании зависимостей между входными и выходными данными при работе компилятора и позволяющая осуществлять пересборку только для файлов, затронутых модификацией исходного кода или не имеющих связанных с ними выходных объектных файлов.

Эта запись устарела. Читайте "Режим инкрементального анализа PVS-Studio" в документации.

В отличие от старой методики минимальной пересборки, завязанной на генерируемые компилятором cl.exe файлы состояний (idb-файлы, Minimal Rebuild Dependancy Database, ключ /Gm) и обладавшей рядом недостатков (как например затруднённость распараллеливания сборки из-за конфликтов доступа и отсутствие прямого отслеживания выходных объектный файлов), новая система не зависит от типа используемых сборочных инструментов (может использоваться как для компиляции, так и для линковки) и имеет открытый API. Данная новинка позволила интегрировать проверку кода анализатором PVS-Studio в процесс разработки на C/C++ с использованием инкрементных пересборок для последней версии Visual Studio 2010. Эта возможность появилась в версии PVS-Studio 4.30.

Одной из основных проблем при регулярном использовании статического анализатора для проверки активно разрабатываемых крупных проектов является необходимость затрачивать большое время на анализ файлов проекта после каждой его модификации. Несмотря на то, что полный анализ можно (и нужно!) регулярно запускать отдельно, например раз в сутки во время ночных сборок, наибольшего эффекта от использования анализатора можно добиться только за счёт как можно более раннего обнаружения и исправления выявленных им дефектов, ведь чем раньше удастся обнаружить ошибку, тем меньше кода придётся в итоге править. Т.О. самым оптимальным вариантом использования статического анализатора является проверка нового кода сразу после его написания. Такой сценарий работы несомненно осложняется необходимостью постоянно вручную запускать проверку для всех модифицированных файлов и каждый раз ждать завершения анализа, что несовместимо с интенсивной разработкой и отладкой нового кода.

Использование анализатора PVS-Studio совместно с системой инкрементной сборки MSBuild позволяет решить все вышеперечисленные проблемы. Включить такой режим послесборочного инкрементального анализа можно в меню PVS-Studio/Incremental Analysis After Build (только для Visual Studio 2010). Инкрементный анализ в Visual Studio 2010 можно использовать и с предыдущими версиями компилятора Visual C++, установив для требуемых проектов соответствующий их версии Platform Toolset.

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

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

Фактически, такой режим работы PVS-Studio приближает по удобству использования наш инструмент к ключу /analyze в некоторых версиях Visual Studio. Теперь вы просто работаете над кодом и компилируете его, при этом периодически получаете сообщения о возможных проблемах от анализатора. А так как анализатор работает в фоне (и количество используемых для анализа ядер можно настроить), то работа с PVS-Studio становится значительно более комфортной. И это значит, что инструмент легко можно установить на машины большого количества (или всех) разработчиков в отделе, чтобы выявлять проблемы в коде сразу же в момент их появления.

ОБНОВЛЕНО: Возможность инкрементального анализа доступна для всех версий Microsoft Visual Studio (2005/2008/2010) начиная с PVS-Studio 4.33.

Популярные статьи по теме
Обрабатывать ли в 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)

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