Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08
На вкладке Specific Analyzer Settings размещены дополнительные расширенные настройки анализатора.
Настройка позволяет совсем отключить прерывание анализа по лимиту времени или задать лимит времени, по истечении которого анализ отдельных файлов завершается с ошибкой V006. File cannot be processed. Analysis aborted by timeout. Перед изменением рекомендуем внимательно ознакомиться с описанием ошибки по указанной выше ссылке. Часто таймаут возникает из-за нехватки оперативной памяти. В этом случае рационально не увеличивать время, а уменьшить количество используемых параллельных потоков. Это может дать существенный прирост производительности, когда процессорных ядер много, а оперативной памяти мало.
Настройка отключает генерацию предупреждений низкого уровня достоверности (Low Certainty, 3-ий уровень предупреждений). После перезапуска анализа сообщения этого уровня пропадут из вывода анализатора.
Позже можно выключить режим No Noise: при следующем анализе все пропавшие ранее предупреждения станут вновь доступны.
Настройка отключает новый парсер для C++ анализатора и возвращает старый. Включите её, если у вас возникли проблемы с C++ анализатором.
Настройка позволяет включать вывод исключений правил анализатора, которые можно указать с помощью комментариев в файле .pvsconfig.
Настройка отключает подстановку параметров шаблона при анализе C++. Это снижает потребление оперативной памяти, но анализ становится менее тщательным.
Включение настройки позволяет в столбце SAST в результатах анализа выделить дополнительной маркировкой предупреждения, относящиеся к потенциальным проблемам безопасности и классифицируемые согласно ГОСТ Р 71207-2024.
Настройка определяет режим отслеживания исходных файлов в кэше зависимостей:
Примечание. Начиная с версии PVS-Studio 7.26, настройка убрана. Теперь, чтобы запустить межмодульный анализ для С и С++ проектов, используйте меню запуска анализа.
Включение настройки позволяет анализатору учитывать информацию не только из анализируемого файла, но и из связанных с ним файлов. Это позволяет производить более глубокий и качественный анализ, но увеличивает время проверки.
Режим актуален для C и C++ проектов. C# проекты обеспечивают межмодульный анализ по умолчанию.
Настройка отключает инкрементальный анализ исходных файлов кода на C и C++, затрагиваемых изменениями в предварительно компилируемом заголовочном файле и заголовочных файлах, включённых в него. Полезна в ситуациях, когда эти файлы часто меняются, и из-за этого время инкрементального анализа значительно увеличивается.
При изменении настройки из IDE Visual Studio изменения вступят в силу после следующего открытия решения или проекта. Если анализ запускается через консольную утилиту PVS-Studio_Cmd, то анализатор сразу задействует настройку.
Настройка позволяет задать лимит времени, по истечении которого инкрементальный анализ файлов остановится. Все предупреждения, обнаруженные на момент остановки анализа, будут выданы в окне PVS-Studio. Дополнительно к ним будет выдано предупреждение, что анализатор не успел обработать все изменённые файлы, а также информация о суммарном и проанализированном количестве файлов.
Опция актуальна только при работе из IDE Visual Studio.
Настройка позволяет выбрать версию стандарта MISRA. Для C доступны версии 2012 и 2023.
Включение настройки позволяет перед запуском анализа выполнять действия, записанные в секции Custom Build Step проектного файла Visual Studio (.vcproj/.vcxproj). Для корректной работы анализатору необходим компилирующийся код. Например, если Custom Build Step используется для генерации .h файлов перед компиляцией, необходимо включить настройку и выполнить код перед анализом проекта. Если же на данном шаге выполняются действия, относящиеся, например, к линковке, они не повлияют на результат работы анализатора. Действия Custom Build Step задаются на уровне проекта и будут выполнены PVS-Studio при первоначальном обходе дерева проектов. Если настройка включена и в результате её выполнения получен ненулевой код, проверка такого проекта не будет запущена.
Включение настройки позволяет автоматически выполнять checkout с использованием Team Foundation Version Control Tool при редактировании файлов, содержащих подавленные предупреждения анализатора (.suppress файлы). Её включение не повлияет на работу с проектами, которые не находятся под управлением системы контроля версий TF или не добавлены в workspace Visual Studio.
Дополнительная информация, в случае её наличия (в т.ч. информация об ошибках), будет выводиться в окно PVS-Studio.
Данная опция актуальна только при работе из IDE Visual Studio.
Пометка сообщения как ложного срабатывания. Требует внесения изменений в файлы с исходным кодом. Анализатор по умолчанию сохраняет каждый файл с исходным кодом после пометки. Однако если подобное частое сохранение нежелательно (например, если файлы находятся на другой машине локальной сети), оно может быть отключено с помощью этой настройки.
Изменение настройки требует осторожности, т.к. отсутствие сохранений файлов с исходным кодом после их разметки на ложные срабатывания может привести к потере результатов работы в случае закрытия среды разработки.
Настройка позволяет включить отображение сообщений, размеченных как False Alarms, в окне вывода PVS-Studio. Она будет применена в окне сообщений PVS-Studio сразу, без необходимости запускать анализ повторно. Когда выставлено значение true, специальный индикатор FA, отображающий количество ложных срабатываний, появится на панели окна вывода.
Настройка включает добавление дополнительного хэш-кода к метке ложного срабатывания. Хэш-код вычисляется на основе содержимого строки кода. Если строка кода изменится, предупреждения с тем же хэш-кодом, выданные для этой строки, больше не будут считаться ложными срабатываниями.
Настройка отключает автоматическую синхронизацию suppress-файлов между проектами в рамках одного решения.
По умолчанию синхронизация suppress-файлов включена. Если какой-либо файл исходного кода используется в нескольких проектах, и предупреждения из этого файла были добавлены в suppress-файл хотя бы одного проекта, то при анализе других проектов эти предупреждения автоматически будут дописаны в их suppress-файлы.
Настройка позволяет задать язык для встроенной справки по диагностическим сообщениям (клик по коду ошибки в окне вывода сообщений PVS-Studio) и документации (команда меню PVS-Studio > Help > Open PVS-Studio Documentation (html, online)) PVS-Studio, доступных на нашем сайте.
Настройка не меняет язык интерфейса IDE плагина PVS-Studio или выдаваемых анализатором диагностических сообщений.
Настройка позволяет использовать оффлайн-справку по диагностическим сообщениям (клик по коду ошибки в окне вывода сообщений PVS-Studio).
Опция отвечает за отображение кнопки Best в интерфейсе PVS-Studio. По умолчанию опция включена, и кнопка Best доступна в таблице срабатываний. Используя её, можно просмотреть 10 наиболее интересных предупреждений анализатора. Вы можете скрыть эту кнопку, определив данный параметр как False.
Настройка позволяет управлять уведомлениями о работе анализатора PVS-Studio. После завершения анализа в случае, если окно PVS-Studio Output содержит сообщения об ошибках (они могут быть скрыты фильтрами как ложные срабатывания, по именам проверяемых файлов и т.п.; такие сообщения не попадают в окно PVS-Studio), анализатор проинформирует об их наличии с помощью всплывающего сообщения в области уведомления Windows (notification area, system tray). Одинарный щелчок мыши сообщению либо по значку PVS-Studio откроет окно вывода сообщений PVS-Studio с найденными ошибками.
Настройка задаёт режим отображения уровней сообщений в окне PVS-Studio Output для результатов работы инкрементального анализа. Установка в данном поле глубины уровня отображения (соответственно, только 1 уровень; 1 и 2 уровни; 1, 2 и 3 уровни) приведёт к их автоматическому включению после завершения инкрементального анализа. Значение Preserve_Current_Levels сохранит существующие настройки уровней без изменений.
Опция может быть полезна при регулярном совместном использовании инкрементального и обычного режимов запуска, т.к. случайное отключение, например, 1 уровня анализа при просмотре большого отчёта обычной проверки приведёт к сокрытию результатов работы уже инкрементального анализа. Поскольку инкрементальный анализ работает в фоновом режиме, подобная ситуация может привести к потере диагностик о реальных ошибках, найденных анализатором в этом режиме работы.
Настройка задаёт режим трассировки (протоколирования хода выполнения программы) для IDE-пакета расширения PVS-Studio (плагина для сред Visual Studio). Трассировка имеет несколько уровней детализации вывода (режим Verbose соответствует наиболее подробному протоколированию). При включении режима трассировки PVS-Studio автоматически создаёт лог-файл в директории AppData\PVS-Studio с расширением .log (например, c:\Users\admin\AppData\Roaming\PVS-Studio\PVSTrace2168_000.log). При этом каждый запущенный процесс IDE будет использовать отдельный лог-файл для сохранения результатов своей трассировки.
Настройка позволяет включить автоматический импорт настроек (.xml-файлов) из директории %AppData%\PVS-Studio\SettingsImports\. Настройки импортируются при каждой загрузке сохранённых настроек, т.е. при запуске Visual Studio или command line версии анализатора, при сбросе настроек и т.п. При импорте настройки-флаги (true/false), а также настройки, хранящие одно значение (например, строку), заменяются настройками из SettingsImports. Настройки, имеющие несколько значений (например, исключаемые директории), объединяются.
При наличии в папке SettingsImports нескольких .xml-файлов, они будут применены к текущим настройкам в соответствии с алфавитным порядком.
По умолчанию PVS-Studio предлагает сохранять файл отчёта (.plog) в той же папке, что и .sln-файл.
Изменение настройки позволяет восстановить стандартное поведение файловых диалогов Windows, т.е. диалог будет помнить последнюю открытую в нём папку и использовать именно её в качестве начальной.
Настройка задаёт, как будет отображаться запрос на сохранение отчёта работы анализатора перед началом нового анализа или загрузкой другого отчёта в случае, если окно вывода уже содержит новые, несохранённые или модифицированные результаты работы анализатора. Установка настройки Yes включит автоматическое сохранение результатов в текущий файл отчёта (после того, как он в первый раз будет указан в диалоге о сохранении файла). После установки настройки No IDE-плагин будет перезаписывать текущие результаты работы анализатора без сохранения. Выбор значения Ask_Always (используется по умолчанию) приведёт к выдаче запроса на сохранение отчёта каждый раз, позволяя пользователю сделать выбор.
По умолчанию при генерации диагностических сообщений PVS-Studio выдаёт полные пути до файлов, в которых анализатор нашёл ошибки. С помощью настройки можно задать корневую часть пути, которую анализатор будет автоматически подменять на специальный маркер в случае, если путь до файла, на который сгенерировано сообщение, начинается с заданного корня. Например, абсолютный путь до файла C:\Projects\Project1\main.cpp будет заменён на относительный путь |?|Project1\main.cpp, если C:\Projects\, который был указан в качестве корня.
При работе с отчётом PVS-Studio, содержащем пути до файлов в относительной форме, IDE-плагин автоматически подставляет значение данной настройки вместо маркера |?|. Использование настройки позволит работать с фалом отчёта PVS-Studio на любой машине, имеющей доступ к проверенным исходникам, вне зависимости от их местоположения в файловой системе.
Детальное описание данного режима работы доступно здесь.
Настройка включает или выключает режим использования пути до папки, содержащей файл решения *.sln, в качестве параметра Source Tree Root.
Настройка позволяет автоматически загружать отчёт, полученный в результате анализа Unreal Engine проекта, в окно вывода сообщений PVS-Studio.
Опция актуальна только при работе из IDE Visual Studio.