﻿# Использование расширения PVS\-Studio для Qt Creator

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

## Установка и обновление расширения PVS\-Studio

Для начала необходимо получить нужную версию расширения\. Её можно найти в директории установки PVS\-Studio\.

* Для **Windows** путь по умолчанию: 'C:\\Program Files \(x86\)\\PVS\-Studio\\QtCreatorPlugins\.
* Для **Linux/macOS**: '$PREFIX/lib/pvs\-studio/plugins', где '$PREFIX' – префикс установки \(чаще всего '/usr'\)\.

### Поддерживаемые версии Qt Creator

Из\-за ограничений интегрированной среды разработки Qt Creator, в ней могут быть запущены только те версии плагина, что были сделаны специально для неё\. Список поддерживаемых версий IDE указан в таблице ниже:

|\*\*Версия IDE Qt Creator\*\*|\*\*Статус поддержки плагинов PVS\\\-Studio\*\*|
|---|---|
|8\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.31|
|9\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.34|
|10\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.35|
|11\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.37|
|12\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.39|
|13\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.41|
|14\\\.0\\\.x|Поддержка окончена\\\. Последняя доступная версия — 7\\\.43|
|15\\\.0\\\.x|Поддерживается|
|16\\\.0\\\.x|Поддерживается|
|17\\\.0\\\.x|Поддерживается|
|18\\\.0\\\.x|Поддерживается|
|19\\\.0\\\.x|Поддерживается|
|20\\\.0\\\.x|Поддерживается|



Символ 'х' в названии файла плагина означает, что на его месте может быть любая цифра\. То есть поддержка версии 9\.0\.х означает, что работоспособность плагина проверена на версиях 9\.0\.0, 9\.0\.1 и 9\.0\.2\.

Целевая версия Qt Creator и платформа указаны в названии архива плагина\. Например, 'pvs\-studio\-qtcreator\-**11\.0\.x**\-7\.25\.73595\.503\.**windows**\.zip' или 'libpvs\-studio\-qtcreator\-**11\.0\.x**\-7\.25\.73595\.503\.**linux**\.tar\.gz'\.

### Поддерживаемые специализированные версии Qt Creator

В таблице ниже указаны совместимые специализированные версии Qt Creator, для которых есть собственные версии плагина PVS\-Studio\. Они несовместимы с официальными версиями Qt Creator, на основе которых они были созданы, но функционально они эквивалентны\.

|\*\*Версия IDE Qt Creator\*\*|\*\*Статус поддержки плагинов PVS\\\-Studio\*\*|
|---|---|
|6\\\.0\\\.x \\\(редакция КПДА\\\)|Поддерживается|

Файл архива плагина для Qt Creator в редакции КПДА \(Комплект разработчика ЗОСРВ "Нейтрино"\) можно определить по суффиксу **qt5\-neutrino** в его названии, например, 'libpvs\-studio\-qtcreator\-**6\.0\.x\-qt5\-neutrino**\-7\.38\.96564\.1478\.windows\.zip'\.

### Установка с помощью мастера установки Qt Creator


> \*\*Примечание\\\.\*\* В Qt Creator версии 15\\\.0\\\.0 возникает проблема при установке плагинов для конкретного пользователя с помощью мастера установки\\\. Путь, по которому устанавливаются плагины, не совпадает с путём, по которому эти плагины ищутся\\\. Данная проблема исправлена  с версии 15\\\.0\\\.1\\\.

Чтобы установить расширение PVS\-Studio откройте Qt Creator и выберите в строке меню пункт 'Help' \-\> 'About Plugins':

![QtCreatorExtension_ru/image1.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image1.png)

Нажмите кнопку 'Install Plugin\.\.\.':

![QtCreatorExtension_ru/image2.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image2.png)

В появившемся мастере установки укажите местоположение архива плагина \(с расширением '\.zip' или '\.tar\.gz' в зависимости от платформы\)\. 


> \*\*Замечание:\*\* не нужно распаковывать архив с плагином перед установкой\\\. Мастер установки плагинов QtCreator заявляет, что поддерживает установку плагинов напрямую, но на практике этот способ часто приводит к сбоям\\\. Поэтому мы советуем устанавливать плагины, не извлекая из архивов\\\.



![QtCreatorExtension_ru/image3.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image3.png)

Далее мастер установки спросит место для установки плагина\. Выберите подходящий вам вариант, нажмите далее и подтвердите установку\.


> \*\*Замечание:\*\* для установки в "Qt Creator installation" могут потребоваться права администратора\\\. В противном случае будет выдана ошибка об отсутствии прав для записи файла\\\.



![QtCreatorExtension_ru/image4.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image4.png)

По окончанию установки плагина не будет выдано никакого окна подтверждения\. Сразу после закрытия мастера установки плагинов нужно нажать кнопку "ОК"\. В таком случае появится сообщение о том, что новые плагины будут доступны только после перезапуска QtCreator\. Соглашаемся, и IDE перезапустится автоматически\.

![QtCreatorExtension_ru/image5.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image5.png)

### Ручная установка

В случае невозможности установки плагина с помощью мастера установки, можно воспользоваться ручной установкой\. Для этого необходимо скопировать файл плагина \(файл с расширением '\.dll' или '\.so' в зависимости от вашей платформы\) в директорию с плагинами для Qt Creator\. По умолчанию, Qt Creator ищет плагины в следующих директориях:

**Windows:**

```cpp
%директория_установки_Qt%\Tools\QtCreator\lib\qtcreator\plugins
%APPDATA%\Local\QtProject\qtcreator\plugins\%версия_qt_creator%
```

**Linux:**

```cpp
/opt/Qt/Tools/QtCreator/lib/qtcreator/plugins
```

### Ручная установка \(альтернативный способ\)

Данный способ можно использовать при невозможности установить плагин в стандартные директории\. При запуске Qt Creator можно указать дополнительные директории для поиска плагинов с помощью флага '\-pluginpath'\.

Например, запуск IDE можно произвести с помощью следующей команды:

* **Windows:** qtcreator\.exe \-pluginpath "%путь\_до\_директории\_с\_плагином%"
* **Linux:** qtcreator \-pluginpath "$путь\_до\_директории\_с\_плагином"

### Обновление плагина

Для обновления плагина достаточно удалить файлы прошлых версий плагина и установить новую версию удобным для вас способом\. Найти место расположения плагина можно, выбрав пункт 'Details' в списке установленных плагинов\.

![QtCreatorExtension_ru/image6.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image6.png)

### Решение проблем с запуском плагина

В случае, если при запуске Qt Creator появляется сообщение, что плагин PVS\-Studio не может быть загружен, т\.к\. не найдены подходящие зависимости \(например, как рисунке ниже\), то необходимо проверить используемую версию плагина и Qt Creator\. Используемую версию Qt Creator можно узнать в меню 'Help' \-\> 'About Qt Creator', а версия используемого плагина указана в названии его файла\.

![QtCreatorExtension_ru/image7.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image7.png)

Так как Qt Creator не обладает системой обновления плагинов, то после очередного обновления плагина может появиться следующее окно\.

![QtCreatorExtension_ru/image8.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image8.png)

Данное сообщение означает, что плагин обнаружил одновременное использование нескольких версий и автоматически выключил все версии, кроме самой последней\. Крайне желательно удалить старые версии\. Для вашего удобства в сообщении также перечислены все обнаруженные версии плагина и пути, где они расположены\. Текущий активный плагин отмечен записью \[Active\]\.

## Интерфейс

Плагин PVS\-Studio для IDE Qt Creator интегрируется в главное меню среды разработки и панель вывода\.

### Интеграция в главное меню

В главном меню появляется дополнительный пункт в разделе 'Analyze', содержащий следующие пункты:

**Check – **подменю, позволяющее запустить анализ;

**Analysis after Build** – быстрый доступ к настройке для активации инкрементального анализа;

**Open/Save** – подменю, позволяющее загружать и сохранять отчёты;

**Recent Reports** – хранит список последних открытых отчётов для их быстрой загрузки\. Клик по пункту меню инициирует загрузку выбранного файла;

**Help** – подменю, содержащее в себе ссылки на документацию и наиболее важные разделы сайта анализатора;

**Options** – открывает настройки IDE Qt Creator в разделе PVS\-Studio\.

![QtCreatorExtension_ru/image9.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image9.png)

### Интеграция в панели вывода 

В области вывода появляется дополнительная панель с именем 'PVS\-Studio'\.

![QtCreatorExtension_ru/image10.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image10.png)

Панель вывода PVS\-Studio состоит из следующих элементов:

**1 **– панель управления отчётом\. Первая кнопка позволяет очистить текущую таблицу, предупреждений, а две другие \(со стрелочками\) позволяют перемещаться между позициями в таблице\. Обратите внимание, что навигация будет производиться именно между позициями \(т\.е\. будут открываться указанные в предупреждениях файлы\), а не просто строками таблицы\.

**2** – панель быстрых фильтров\. Содержит кнопки показа дополнительного меню, показа расширенных фильтров, а также переключатели отображаемых уровней и категорий предупреждений\. При клике по кнопке дополнительного меню появляется всплывающее меню со следующими пунктами:

![QtCreatorExtension_ru/image11.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image11.png)

* **Check** – содержит варианты для запуска анализа\.
* **Open/Save** – позволяет загрузить/сохранить отчёт\.
* **Show False Alarms** – показывает/скрывает предупреждения, отмеченные как ложные\. Число в скобках показывает количество предупреждений, отмеченных как ложные, в текущем отчёте\. При активации, в таблице предупреждений появляется дополнительный столбец\.
* **Options\.\.\.** – показывает окно настроек IDE Qt Creator с активным разделом PVS\-Studio\.
* **Edit Source Tree Root\.\.\.** – позволяет быстро изменить настройку Source Tree Root\. При активации вызывается диалоговое окно для выбора существующей директории\. Обратите внимание, что данный пункт виден только если отчёт содержит предупреждения с относительными путями до файлов\. Подробнее о работе этой настройки рассказано в разделе дополнительного функционала\.

**3** – основная область просмотра\. Целиком состоит из таблицы предупреждений\. Подробно этот элемент будет рассмотрен позже\.

**4** – элементы управления панелью\. Первая кнопка позволяет развернуть область просмотра по высоте, а вторая – скрыть панель\.

**5** – кнопка для показа панели PVS\-Studio\.

### Интеграция в настройки

Интеграция в настройки состоит из добавления нового раздела "PVS\-Studio" в список уже существующих разделов\.

Раздел настроек PVS\-Studio разделён на 5 разделов \(по вкладке на каждый\)\. Более подробно о назначении каждого раздела и настроек, входящих в них, описано в разделе "Конфигурация плагина"\.

## Запуск анализа PVS\-Studio

Плагин поддерживает анализ проектов, их частей, а также отдельных файлов\. На данный момент поддерживаются следующие типы проектов:

* CMake;
* Qmake;
* Qbs\.

Запуск анализа можно произвести несколькими способами:

* через меню Analyze \(Анализ\) в строке меню главного окна Qt Creator;
* с помощью контекстного меню в дереве проекта \(поддерживаются проекты, папки, отдельные файлы\);
* через меню в панели вывода PVS\-Studio;
* через контекстное меню текущего файла\.

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

![QtCreatorExtension_ru/image12.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image12.png)

При запуске анализа также проверяется содержимое папки '\.PVS\-Studio' в директории исходного кода проекта\. Если в ней будут найдены пользовательские [файлы конфигурации](https://pvs-studio.ru/ru/docs/manual/6630/) \(с расширением \*\.pvsconfig\) или [suppress\-файлы](https://pvs-studio.ru/ru/docs/manual/0032/) \(с суффиксом \*\.suppress\.json\), то они будут переданы анализатору для дальнейшей обработки\.


> \*\*Внимание:\*\* на данный момент плагин PVS\\\-Studio для Qt Creator поддерживает работу только с одним suppress\\\-файлом\\\. Если при запуске будет найдено несколько файлов, то в отчёте появится соответствующая запись\\\. В ней также будет указано, какой файл используется при анализе\\\.



В случае каких\-либо проблем с запуском будет выведено всплывающее окно с подробным описанием проблемы\.

### Дополнительные режимы анализа

В плагине реализована поддержка инкрементального анализа\. В этом режиме после каждой успешной сборки проекта будет автоматически запускаться его анализ\. Однако проанализированы будут только те файлы, что изменились с момента прошлого запуска анализатора\. Подробнее о режиме инкрементального анализа можно узнать в отдельной [документации](https://pvs-studio.ru/ru/docs/manual/0024/)\.

Активировать инкрементальный анализ можно в настройках плагина \(General\-\>Incremental analysis\) или с помощью пункта меню 'Analysis after Build' в подменю PVS\-Studio главного окна\.

![QtCreatorExtension_ru/image13.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image13.png)

Также в плагине доступен режим межмодульного анализа\. Под межмодульным анализом в PVS\-Studio понимается расширение возможностей межпроцедурного анализа на функции, объявленные в единицах трансляции, отличных от той, к которой относится текущий проверяемый файл\. Более подробную информацию о том, что такое межмодульный анализ и чем он может быть полезен, можно найти в [документации](https://pvs-studio.ru/ru/docs/manual/6521/#ID33D82545C7)\.

Для запуска межмодульного анализа необходимо выбрать пункт 'Analyze with PVS\-Studio \(Intermodular\)' в контекстном меню проекта верхнего уровня\. Межмодульный анализ отдельных частей проекта невозможен\.

![QtCreatorExtension_ru/image14.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image14.png)

## Работа с результатами анализа

**Обратите внимание**: расширение PVS\-Studio для Qt Creator поддерживает **только** отчёты в формате JSON\. Для отображения отчёта в другом формате вам потребуется выполнить его преобразование в JSON\-формат\.

Для преобразования можно воспользоваться утилитами командной строки PlogConverter\.exe для Windows и plog\-converter для Linux / macOS\. Эти утилиты позволяют не только конвертировать отчёт PVS\-Studio в разные форматы, но и дополнительно обрабатывать его\. Например, проводить фильтрацию предупреждений\. Подробнее о них можно прочитать [здесь](https://pvs-studio.ru/ru/docs/manual/0038/)\.

Пример команды конвертации отчёта PVS\-Studio в JSON\-формат при помощи PlogConverter\.exe \(Windows\):

```cpp
PlogConverter.exe path\to\report.plog -t json ^
                                      -n PVS-Studio
```



Пример команды конвертации отчёта PVS\-Studio в JSON\-формат при помощи plog\-converter \(Linux и macOS\):

```cpp
plog-converter path/to/report/file.json -t json \
                                        -o PVS-Studio.json
```

### Загрузка уже существующего JSON отчёта PVS\-Studio в Qt Creator

В случае если у вас уже есть готовый отчёт анализатора, и вы хотите посмотреть его в Qt Creator, то откройте панель PVS\-Studio, нажмите на кнопку меню и выберите пункт 'Open/Save \-\> Open Report\.\.\.':

![QtCreatorExtension_ru/image15.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image15.png)

Также отчёт может быть открыт с помощью пункта меню 'Analyze \-\> PVS\-Studio \-\> Open/Save \-\> Open Report\.\.\.':

![QtCreatorExtension_ru/image16.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image16.png)

После выбора и загрузки отчёта появится область просмотра предупреждений, а сами предупреждения отобразятся в таблице:

![QtCreatorExtension_ru/image17.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image17.png)

### Навигация в отчёте

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

Клик левой кнопкой мыши по заголовку таблицы сортирует содержимое по выбранному столбцу\.

Клик правой кнопкой мыши по заголовку таблицы открывает всплывающее меню, с помощью которого можно скрыть/отобразить дополнительные столбцы, а также активировать отображение полных путей до файлов в столбце позиций\.

![QtCreatorExtension_ru/image18.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image18.png)

В таблице предупреждений поддерживается множественный выбор\. Для его активации можно использовать протяжку с зажатой левой кнопкой мыши, а также привычные сочетания клавиш:

* 'Shift\+Клик' или 'Shift\+стрелочки' – множественный выбора/отмена
* 'Ctrl\+Клик' – для единичного выбора/отмены


> \*\*Примечание:\*\* практически все элементы в плагине имеют всплывающие подсказки\\\. Для их активации достаточно задержать курсор мыши над элементом на пару секунд\\\.



#### Столбцы в отчёте и их назначение

**Level – **неименованный первый столбец, отображает соответствие между уровнем предупреждения и цветом \(в порядке убывания важности/достоверности\): красный – 1 уровень, оранжевый – 2 уровень, жёлтый – 3 уровень\.

**Star** – показывает, отмечено ли срабатывание как избранное\. Клик по ячейке в этом столбце устанавливает/снимает отметку "избранное" с соответствующего предупреждения\. Полезно для выделения интересных предупреждений, например, тех, к которым имеет смысл вернуться позже\.

**ID** – показывает порядковый номер предупреждения в отчёте\. Полезно при необходимости отсортировать отчёт в порядке получения предупреждений от анализатора\.

**Code** – указывает к какой диагностике относится те или иные предупреждения\. Клик по значению в данном столбце открывает документацию по соответствующей диагностике\.

**CWE** – отображает соответствие предупреждения согласно классификации CWE\. Клик по значениям в данном столбце открывает документацию с описанием соответствующего недостатка безопасности\.

**SAST** – отображает соответствие предупреждения согласно различным стандартам защищённости или безопасности, например, SEI CERT, MISRA, AUTOSAR, и т\.д\.

**Message** – текст предупреждения, выданного анализатором\.

**Project** – содержит название проекта, анализ которого привёл к выдаче предупреждения\.

**Position** – показывает позицию \(имя файла и строка через двоеточие\), к которой относится срабатывание\. В случае необходимости отобразить полный путь до файла – необходимо кликнуть правой кнопкой мыши по заголовку таблицы и выбрать пункт 'Show full path to file'\. Если предупреждение анализатора содержит сразу несколько позиций, то в его конце появляется метка _\(\.\.\.\)_\. В таком случае при клике в столбце позиции появится список со всеми дополнительными позициями\.

![QtCreatorExtension_ru/image19.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image19.png)

**FA** – показывает, установлена ли для предупреждения отметка ложного срабатывания\.


> \*\*Примечание:\*\* некоторые столбцы могут быть скрыты по умолчанию\\\. Для их отображения /скрытия необходимо кликнуть правой кнопкой мыши по заголовку таблицы и в появившемся меню выбрать пункт 'Show Columns', а в нем столбец, который вас интересует\\\.



#### Контекстное меню

При клике на каком\-либо предупреждении правой кнопкой мыши появляется всплывающее меню с перечнем доступных дополнительных действий:

![QtCreatorExtension_ru/image20.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image20.png)

Меню** 'Mark As'** – содержит команды для быстрой установки/снятия отметок с выбранных предупреждений\. На данный момент доступны отметки предупреждений как избранные и ложные\. Обратите внимание, что содержимое этого меню меняется в зависимости от состояния выбранных на данный момент предупреждений\.

'**Suppress selected messages**' – позволяет подавить текущие выбранные предупреждения в файл подавления\. Подробнее о подавлении предупреждений написано в пункте "Подавление предупреждений"\. 

Меню** 'Copy to clipboard'** – позволяет скопировать информацию о выбранных предупреждениях\. Содержит несколько подпунктов:

* **All** – копирует полную информацию о срабатывании \(номер диагностики, классификаторы безопасности, полное сообщение анализатора, имя файла и строка\)\. Обратите внимание, что классификаторы безопасности \(CWE и/или SAST\) будут включены в сообщение только при включённом отображении соответствующих столбцов таблицы;
* **Message** – копирует только текст предупреждения;
* **Path to file** – копирует полный путь до файла\.

**'Hide all %N errors'** – позволяет скрыть из отчёта все предупреждения, относящиеся к данной диагностике\. При клике появляется всплывающее меню для подтверждения операции\. В случае положительного выбора сообщения будут отфильтрованы мгновенно\.

![QtCreatorExtension_ru/image21.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image21.png)

**'Don't check files from'** – подменю, содержащее части пути до файла позиции\. Используется, если вам необходимо скрыть из отчёта все срабатывания, полученные на файлы из выбранной директории\. При выборе какого\-либо значения появится всплывающее окно для подтверждения фильтрации и описанием как её отключить в будущем:

![QtCreatorExtension_ru/image22.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image22.png)

Меню **'Analyzed source files'** – содержит список файлов, анализ которых привёл к появлению данного предупреждения\. Полезно при выдаче срабатывания на заголовочных файлах\.

### Фильтрация отчёта

Механизмы фильтрации окна вывода PVS\-Studio позволяют быстро найти и отобразить как отдельные диагностические сообщения, так и целые их группы\. 

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

#### Быстрые фильтры

Панель инструментов содержит ряд переключателей, позволяющих включить либо отключить отображение предупреждений из соответствующих им групп\. При изменении состава активных категорий также будут пересчитаны счётчики\.

![QtCreatorExtension_ru/image23.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image23.png)


> \*\*Примечание:\*\* переключатель группы 'Fails' отображается только при наличии ошибок от анализатора \\\(их 'Code' начинается с V0\\\.\\\.\\\) в отчёте\\\.

Детальное описание уровней достоверности предупреждений и групп диагностических правил приведено в разделе документации "[Знакомство со статическим анализатором кода PVS\-Studio](https://pvs-studio.ru/ru/docs/manual/0007/)"\.

#### Расширенные фильтры

Расширенные фильтры отображаются при нажатии кнопки 'Quick Filters'\. Состояние панели дополнительных фильтров \(показана/скрыта\) не влияет на активные фильтры\. Т\.е\. их можно скрыть и при этом фильтры не будут сброшены\.

![QtCreatorExtension_ru/image24.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image24.png)

При её активации появляется дополнительная панель, которая содержит поля ввода для фильтрации всех столбцов таблицы, а также кнопка для быстрой очистки всех фильтров \(Clear All\)\. 

![QtCreatorExtension_ru/image25.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image25.png)

После ввода текста в поля ввода необходимо нажать 'Enter' для активации фильтра\. Обратите внимание, что некоторые поля поддерживают множественную фильтрацию \(например, Code\), о чём сообщается во всплывающей подсказке при наведении курсора мыши на поле ввода\.

### Подавление предупреждений

При первом запуске анализатора на большом проекте может быть действительно много срабатываний\. Разумеется, стоит выписать себе самые интересные, а вот остальные можно скрыть при помощи механизма подавления предупреждений\.

Для подавления всех предупреждений нужно выбрать пункт 'Suppress All Messages' в меню плагина:

![QtCreatorExtension_ru/image26.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image26.png)

При его активации появится дополнительное окно с вопросом, какие именно предупреждения вы хотите подавить:

* **All** подавит все предупреждения в таблице \(даже скрытые через фильтры и настройки\);
* **Only Filtered ** подавит только те предупреждения, что сейчас присутствуют в таблице\.

![QtCreatorExtension_ru/image27.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image27.png)

При выборе нужного пункта предупреждения будут подавлены в существующий файл подавления предупреждений\. Если файл подавления предупреждений не будет найден, то будет создан в следующей директории: '%корневой\_каталог\_исходного\_код\_проекта%/\.PVS\-Studio'\.

Если предложенный выше вариант вам не подходит, то можно воспользоваться точечным подавлением предупреждений\. Для этого необходимо выбрать нужные строки в таблице, открыть контекстное меню и выбрать 'Add message to suppression file'\.

![QtCreatorExtension_ru/image28.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image28.png)

## Конфигурация плагина

В настройки плагина PVS\-Studio для IDE Qt Creator можно попасть с помощью выбора раздела PVS\-Studio в общем списке настроек или с помощью пунктов меню 'Options\.\.\.' плагина\.

Настройки плагина хранятся в файле 'qtcsettings\.json', который расположен:

* Windows: '%APPDATA%\\PVS\-Studio\\qtcsettings\.json';
* Linux/macOS: '\~/\.config/PVS\-Studio/qtcsettings\.json '\.

Все настройки плагина разделены на 5 вкладок:

* General – основные настройки плагина;
* Detectable Errors – настройка активных предупреждений;
* Don't Check Files – фильтрация предупреждений по маскам путей или имён файлов;
* Keyboard Message Filtering – фильтрация сообщений по ключевым словам;
* Registration – ввод лицензии для анализатора\.

### Вкладка 'General'

Содержит основные настройки анализатора и плагина\.

![QtCreatorExtension_ru/image29.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image29.png)

**Incremental analysis – **включает режим инкрементального запуска анализатора\.

**Remove intermediate files **– автоматическое удаление временных файлов, создаваемых анализатором в процессе работы\.

**Analysis Timeout** – позволяет задать временя \(в секундах\), после которого проверка текущего файла будет пропущена\.

**Thread Count** – количество потоков, используемых при анализе\. Указание большего значения может ускорить анализ, но также может привести к аварийному завершению работы анализатора в связи с нехваткой памяти\. Оптимальное значение равно количеству физических ядер используемого процессора\.

**Display false alarms** – включает/отключает отображение ложных срабатываний в отчёте\. При активации появляется дополнительный столбец в таблице визуализации отчёта\.

**Save file after False Alarm mark** – если активно, то сохраняет изменённый файл после вставки комментария ложного срабатывания\.

**Source Tree Root** – содержит путь, который должен использоваться при открытии позиций, использующих относительные пути\. Например, если в предупреждении записан относительный путь '\\test\\mylist\.cpp', а настройка Source Tree Root содержит путь 'C:\\dev\\mylib', то при попытке перехода на позицию из предупреждения будет открыт файл 'C:\\dev\\mylib\\test\\mylist\.cpp'\.

Детальное описание использования относительных путей в файлах отчётов PVS\-Studio смотрите [здесь](https://pvs-studio.ru/ru/docs/manual/0027/)\.

**Help Language** – указывает, на какой язык предпочтительно открывать документацию анализатора\. Используется при переходе в документацию на сайте анализатора\.

### Вкладка 'Detectable Errors'

Данная вкладка содержит список и описание всех предупреждений анализатора, а также позволяет включать/выключать как отдельные диагностики, так и целые категории\.

![QtCreatorExtension_ru/image30.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image30.png)

В верхней части окна доступен полнотекстовый поиск по описанию диагностики и её номеру\. При клике на код диагностики открывается её документация\. При наведении на текст появляется всплывающее сообщение с полным текстом\. При нажатии 'OK' или 'Apply' происходит обновление таблицы предупреждений для соответствия текущим фильтрам\.

Все диагностики сгруппированы в категории\. Для них можно выставить следующие состояния:

* Disabled – категория отключена и все её элементы не будут показываться в списке предупреждений\. Также её кнопка будет скрыта с панели быстрых фильтров \(кроме категории General\)\.
* Custom – категория активна, элементы имеют различные состояния\.
* Show All – активирует категорию и всё дочерние элементы\.
* Hide All – деактивирует категорию и все дочерние элементы\. Кнопка категории не пропадает с панели быстрых фильтров\.

Полный список диагностик всегда доступен в разделе "[Сообщения PVS\-Studio](https://pvs-studio.ru/ru/docs/warnings/)"\.

### Вкладка 'Don't Check Files'

Содержит списки для фильтрации предупреждений по маскам имён файлов или путей\. Если имя или путь будет удовлетворять хотя бы одной маске – он будет скрыт из отчёта\.

![QtCreatorExtension_ru/image31.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image31.png)

Поддерживаются следующие символы подстановки:

\* – любое количество любых символов

? – один любой символ

Для добавления записи необходимо нажать кнопку 'Add' и ввести текст в появившееся поле\. Для удаления необходимо выбрать запись и нажать кнопку 'Remove'\. Записи с пустыми полями будут удалены автоматически\. Редактировать уже существующие записи можно при помощи двойного клика по ней или выбора и нажатия кнопки 'Edit'\.

При нажатии кнопок 'OK' или 'Apply' происходит обновление таблицы предупреждений для соответствия текущим фильтрам\.

### Вкладка 'Keyword Message Filtering'

Вкладка содержит редактор ключевых слов, предупреждения с которыми будут скрыты в отчётах\. Ключевые слова из этого списка проверяются только по данным в столбце 'Message'\. 

![QtCreatorExtension_ru/image32.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image32.png)

Функция может быть полезна при необходимости скрыть предупреждения от определённой функции или класса, достаточно указать их здесь\.

### Вкладка 'Registration'

Вкладка содержит форму для ввода данных лицензии, которая будет использоваться при запуске анализатора\. Процесс ввода лицензии в Qt Creator подробно описан в [документации](https://pvs-studio.ru/ru/docs/manual/0046/#QtCreator)\. 

![QtCreatorExtension_ru/image33.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image33.png)

### Горячие клавиши

Использование горячих клавиш позволяет ускорить процесс обработки полученных результатов анализа\. Их можно назначать/переопределять в настройках 'Options \-\> Environment \-\> Keyboard'\. Чтобы быстрее их найти, необходимо ввести 'PVS\-Studio' в поле поиска окна 'Keyboard Shortcuts'\. 

![QtCreatorExtension_ru/image34.png](https://import.viva64.com/docx/blog/QtCreatorExtension_ru/image34.png)