|
@@ -0,0 +1,47 @@
|
|
|
+Во время отладки приложения разработчику требуется анализировать свой код, что не всегда является удобным. Для помощи с анализом созданы **статистические анализаторы**. Внедрение такого инструмента позволяет устранять многие ошибки на этапе "зарождения", тем самым экономя время и ресурсы на их последующее устранение. Из этого следует, что статический анализатор необходимо использовать регулярно, именно в таком случае он проявит себя наиболее эффективно. Одним из таких статистических анализаторов является **PVS-Studio**.
|
|
|
+
|
|
|
+**PVS-Studio** - статический анализатор С, С++, C# и Java кода, предназначенный для облегчения задачи поиска и исправления различного рода ошибок. Анализатор можно использовать в Windows, Linux и macOS.
|
|
|
+
|
|
|
+При работе с Windows анализатор интегрируется в Visual Studio в качестве плагина, предоставляя удобный интерфейс для ориентации в коде и поиска проблемных мест. Также присутствует приложение C and C++ Compiler Monitoring UI (Standalone.exe), независимое от Visual Studio и позволяющее проверять файлы, компилируемые не только с помощью Visual C++, но и с использованием GCC (MinGW), Clang. Консольная утилита PVS-Studio_Cmd.exe позволит выполнять проверку MSBuild/Visual Studio проектов без запуска IDE или Compiler Monitoring UI.
|
|
|
+
|
|
|
+PVS-Studio для Linux представляет собой **консольное приложение**.
|
|
|
+
|
|
|
+PVS-Studio разделяет все предупреждения по 3 уровням достоверности: **High**, **Medium** и **Low**. Также некоторые сообщения относятся к особой категории **Fails**.
|
|
|
+
|
|
|
+1. High - включает в себя предупреждения с максимальным уровнем достоверности. Такие предупреждения часто указывают на ошибки, требующие немедленного исправления.
|
|
|
+
|
|
|
+
|
|
|
+2. Medium - содержит менее достоверные предупреждения, на которые все же стоит обратить пристальное внимание.
|
|
|
+
|
|
|
+
|
|
|
+3. Low - предупреждения с минимальным уровнем достоверности, указывающие на несущественные неточности в коде. Среди таких предупреждений обычно велик процент ложных срабатываний.
|
|
|
+
|
|
|
+
|
|
|
+**Fails** - внутренние сообщения анализатора, информирующие о возникновении каких-то проблем при работе. В группу Fails попадают сообщения об ошибках анализатора (например, сообщения с кодами V001, V003 и т.п.), а также любой необработанный вывод вспомогательных программ, используемых самим анализатором во время анализа (препроцессор, командный процессор cmd), выдаваемый ими в stdout/stderr.
|
|
|
+
|
|
|
+Анализатор содержит 5 видов диагностических правил:
|
|
|
+**General (GA)** - диагностики общего плана. Основной набор диагностических правил PVS-Studio.
|
|
|
+
|
|
|
+**Optimization (OP)** - диагностики микрооптимизации. Указания по повышению эффективности и безопасности кода.
|
|
|
+
|
|
|
+**64-bit (64)** - диагностики, позволяющие выявлять специфические ошибки, связанные с разработкой 64-битных приложений, а также переносом кода с 32-битной на 64-битную платформу.
|
|
|
+
|
|
|
+**Customers' Specific (CS)** - узкоспециализированные диагностики, разработанные по просьбам пользователей. По умолчанию этот набор диагностик отключен.
|
|
|
+
|
|
|
+**MISRA** - диагностики, разработанные в соответствии со стандартом MISRA (Motor Industry Software Reliability Association). По умолчанию этот набор диагностик отключен.
|
|
|
+
|
|
|
+В меню настроек есть возможность настроить PVS-Studio оптимальным образом для удобства работы. Например, присутствуют следующие возможности: выбор препроцессора, исключение файлов и папок из проверки, выбор типов диагностических сообщений, выводящихся при проверке и множество прочих настроек.
|
|
|
+
|
|
|
+PVS-Studio может использоваться независимо от интегрированной среды разработки Microsoft Visual Studio. Compiler Monitoring UI позволяет проверять проекты в процессе их сборки. В этой версии также поддерживаются переходы по коду по диагностическим сообщениям, поиск фрагментов кода, определений макросов и типов данных.
|
|
|
+
|
|
|
+**PVS-Studio_Cmd.exe** - модуль, позволяющий выполнять анализ решений Visual Studio (.sln), а также Visual C++ и Visual C# проектов (.vcxproj, .csproj) из командной строки. Это может быть полезно, например, в случае необходимости интеграции статического анализа на сборочном сервере. PVS-Studio_Cmd.exe позволяет проводить как полный анализ целевого проекта, так и инкрементальный (анализ файлов, изменившихся с момента последний сборки). Представление кода возврата работы утилиты в виде битовой маски позволяет получить подробную информацию о результатах анализа и идентифицировать проблемы, в случае их наличия. Таким образом, используя модуль PVS-Studio_Cmd.exe, можно достаточно 'тонко' настроить сценарий статического анализа кода и внедрить его в процесс CI.
|
|
|
+
|
|
|
+PVS-Studio обладает **обширной справочной системой диагностических сообщений**. Эта база доступна как при работе с инструментом PVS-Studio, так и на официальном сайте. К различным диагностическим сообщениям прилагаются примеры кода, содержащего подобные ошибки, описание проблемы, а также возможные варианты исправления.
|
|
|
+
|
|
|
+Чтобы изучить описание той или иной диагностики, достаточно кликнуть левой кнопкой мыши по номеру диагностики в окне вывода сообщений. Эти номера оформлены как гиперссылки.
|
|
|
+
|
|
|
+**Поддержка** для PVS-Studio осуществляется **посредством электронной почты**. Так как с клиентами общаются непосредственно разработчики анализатора, это позволяет быстро получать ответы на самые разные вопросы.
|
|
|
+
|
|
|
+Когда вы просмотрите все сообщения, которые выдал анализатор кода, то вы найдете как реальные ошибки в программах, так и конструкции, не являющиеся ошибочными. Дело в том, что **анализатор не может на 100% точно определить все ошибки в программах без так называемых "ложных срабатываний"**.
|
|
|
+
|
|
|
+Определить какие ошибки являются ложными, а какие нет – ваша обязанность, анализатор кода же только существенно сокращает количество мест, которые вам необходимо проверить.
|