Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

PVS-Studio сейчас работает и без среды Visual Studio либо C Builder – проверяем препроцессированные файлы от чего желательно

Anna | 24.06.2014 | нет комментариев

Новинка в PVS-Studio!

В вышедшей на днях новой версии статического анализатора кода PVS-Studio 5.10 возникла крошечная неприметная утилита PVS-Studio Standalone. Как говориться, небольшой шаг для Общества и огромный шаг для PVS-Studio :) . Эта утилита теснее теперь разрешает делать (пока) две вещи:

  • Просматривать без запуска Visual Studio IDE итоги обзора (.plog-файл), сохраненные на иной машине.
  • Исследовать теснее препроцессированные файлы (полученные каким-либо образом) без запуска препроцессора и без файлов плана либо makefile-ов.


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

В этой статье я покажу два сценария пригодного применения этой утилиты.

Сценарий 1-й – просмотр .plog файла на машине без среды Visual Studio либо C Builder

Представим, вы по какой-то причине не имеете на своей рабочей машине ни C Builder (что еще дозволено объяснить), ни Visual Studio (что теснее вообще за гранью!). Но при этом начитались статей про то, что PVS-Studio это дюже резко и не прочь взглянуть на итоги обзора кода. От того что вы не имеете поддерживаемых PVS-Studio сред разработки на своей машине, то вы можете попросить коллегу проверить план в Visual Studio на иной машине, сберечь итоги проверки в .plog файл и принести его на свою машину (желанно совместно с исходниками плана, Дабы комфортнее было разбираться с ошибками). Что необходимо для этого?

Подготовка к проверке на машине со средой

  1. Развернуть PVS-Studio на той машине, где все-таки будет проверяться план и есть среда разработки с интегрированной туда PVS-Studio.
  2. Настроить переменную SourceTreeRoot в настройках PVS-Studio) так, Дабы она содержала путь до начала файлов с кодом плана (проверяемых файлов). Это делается для того, Дабы в .plog-файле были относительные пути, а не безусловные.
  3. Исполнить проверку плана и сберечь файл отчета.

Просмотр отчета на машине без среды

1. Установить PVS-Studio Standalone (предпочесть галочку во время инсталяции).

2. Запустить PVS-Studio Standalone из Windows-меню Start/Пуск.

3. В запустившейся программе открыть .plog файл.

4. Загрузился .plog:

5. Отчет теснее дозволено просматривать, но если кликнуть по сообщению, то увидим просьбу указать папку с исходниками:

6. Сделаем это:

7. И сейчас дозволено просматривать лог, трудиться над фильтрацией и сортировкой сообщений и даже править начальный код!

Безусловно, отнеситесь с пониманием к этой нашей «среде» – она хоть и построена на Scientilla (как и Notepad ), но до IDE яруса Visual Studio ей как до Луны. Самое основное неудобство – неимение IntelliSence. Мы пытаемся его возместить диалогом поиска. Тем не менее:

  1. Вы можете просматривать диагностические сообщения анализатора и осуществлять навигацию по коду.
  2. Вы можете скрывать сообщения, фильтровать, отключать отдельные диагностики БЕЗ перезапуска обзора.
  3. Вы можете размечать сообщения как ложные срабатывания.
  4. В общем, это фактически полновесная PVS-Studio, разве что без инкрементального обзора.

Но наверно многим будет увлекательнее 2-й сценарий применения, о котором дальше.

2-й сценарий применения – проверка препроцессированных файлов

Но самое резкое в PVS-Studio Standalone – это не работа с готовыми логами, а вероятность проверки препроцессированных файлов. Вообще в чем трудность интеграции PVS-Studio в произвольный план? Дело в том, что для своей работы анализатор должен исполнить препроцессирование файлов. И если у вас есть расчетный файл .vcproj/.vcxproj (т.е. вы трудитесь в среде Visual Studio) либо даже вы трудитесь в C Builder, то создание препроцессированных файлов для PVS-Studio происходит механически, когда вы нажимаете кнопку «Проверить». А вот если вы внезапно трудитесь в ином режиме (скажем, через Makefile), то вам нужно интегрировать вызов PVS-Studio в сборочную систему, что не неизменно бывает легко по различным причинам.

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

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

Сборка zlib

  1. Качаем zip-файл, распаковываем в zlib-1.2.8, кладем в корень (в zlib-1.2.8) файл win32Makefile.msc.
  2. Настраиваем сборочное окружение командной строки с поддержкой VS2012 x86 Native Tools Command Prompt (либо чего-то иного).
  3. Запускаем nmake –f Makefile.msc.
  4. Убеждаемся, что все скомпилировалось.

Приобретение препроцессированных .i-файлов

1. Открываем на редактирование файл Makefile.msc

2. Добавляем ключ /P генерировать препроцессированные файлы. То есть взамен строки

CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd«zlib» $(LOC)

получаем

CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd«zlib» /P $(LOC)

3. Генерируем препроцессированные файлы:

nmake –f Makefile.msc clean

nmake –f Makefile.msc

4. Убеждаемся, что в папке есть .i-файлы.

Проверка файлов в PVS-Studio Standalone

1. Запускаем PVS-Studio Standlone.

2. Открываем меню Tools, команду Verify Preprocessed Files…

3. Заполняем поля дальнейшим образом:

Что тут значимо: пути до исходников и до .i-файлов (они у нас совпадают), пути до системных include-папок (Дабы не браниться на сообщения в этих файлах), ну и некоторые добавочные параметры.

Интерес представляет список поддерживаемых препроцессоров. Вот он больше детально:

Давнишний читатель наших статей здесь же воскликнет: «Это что же, вы наконец-то gcc поддерживаете?» Отвечаем: «Поддерживаем!». Поддерживаем и в случае MinGW, и в Cygwin, и в случае (О Боже, они сделали это!) Linux.

То есть сейчас вы можете даже проверять linux-планы, правда мы только начинаем тестировать эту функциональность Добросовестно говоря. У кого будет желание играться и экспериментировать – пишите о своих задачах, будем оперативно править, если что-то у кого-то вылезет.

4. Заполнив диалоговое окошко, нажимаем кнопку Start. Позже некоторого времени, получаем окно с итогами и навигацией:

Дозволено проверять и ПРАВИТЬ код прямо в PVS-Studio Standalone!

Мы сделали дюже резкую штуку, которая расширяет сферу использования PVS-Studio и делает это дюже комфортным для пользователя методом.

Что дальше?

А дальше всякий, кто просил у нас проверку MinGW, Cygwin, gcc, а также по каким-то причинам легко не мог проверить свой код с поддержкой PVS-Studio, должен скачать новую версию и поиграться с PVS-Studio Standalone.

P.S. И да, это первая статья про PVS-Studio с таким огромным числом скриншотов :-) .

 

Источник: programmingmaster.ru

 

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB