Для получения триального ключа
заполните форму ниже
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.

Последние статьи:

Опрос:

Популярные статьи по теме
Как Apple и другие крупные компании настиг программный баг

Дата: 09 Ноя 2022

Автор: Ульяна Гришина

Сегодня мы отобрали свежие случаи программных ошибок, чтобы вы могли немного отвлечься и, возможно, узнать что-то новенькое. Если вам интересно узнать, как программисту удалось сломать Интернет по вс…
Единороги компании PVS-Studio

Дата: 30 Авг 2022

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

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

Дата: 26 Май 2022

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

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

Дата: 24 Май 2022

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

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

Дата: 04 Май 2022

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

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

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

Следующие комментарии
Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо