Форум программистов, компьютерный форум, киберфорум
el_programmer
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
PVS-Studio - это инструмент для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#.

PVS-Studio выполняет статический анализ кода и генерирует отчёт, помогающий программисту находить и устранять ошибки. PVS-Studio выполняет широкий спектр проверок кода, но наиболее силён в поисках опечаток и последствий неудачного Copy-Paste. Показательные примеры таких ошибок: V501, V517, V522, V523, V3001.

Анализатор ориентирован на разработчиков, использующих среду Visual Studio, и может в фоновом режиме выполнять анализ измененных файлов после их компиляции. В идеале ошибки будут обнаружены и исправлены ещё до попадания в репозиторий. Однако ничто не мешает использовать анализатор для проверки всего решения целиком или для встраивания в системы непрерывной интеграции. Эти и иные способы использования анализатора описаны в документации.

Пояснение про ограничения демонстрационной версии PVS-Studio

Запись от el_programmer размещена 06.05.2016 в 11:18
Показов 2059 Комментарии 1
Метки programming, tools

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


У ограничений имеется две цели. Первая - как можно быстрее показать потенциальному пользователю, что статический анализатор может находить ошибки в его коде. Вторая - побудить к общению с нами в почте, чтобы помочь использовать инструмент правильно. Я уверен, что эта взаимосвязь непонятна, поэтому я и решил написать эту маленькую заметку.


Ограничения

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

Давайте теперь разберём эти два ограничения и причины из-за которых потребовалось их создавать. Все истории, которые я расскажу основаны на реальных событиях. Созданные ограничения являются не придумкой маркетолога, а результатом длительного общения с потенциальными пользователями и наблюдениями за процессом знакомства людей с PVS-Studio.


Много, не значит полезно

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



Свое поведение программисты объясняют тем, что хотят видеть все возможности анализатора. Это неправильно. Правильная цель - увидеть, что анализатор может быть полезен проекту. То есть, в первую очередь надо увидеть, что анализатор находит настоящие ошибки в коде. Включив же всё на максимум, человек тонет в предупреждениях. Просмотрев 20-30 неинтересных предупреждений, человек теряет интерес. Скорее всего, на этом знакомство с инструментом закончится. Если же мы сокращаем набор предупреждений, который он может просматривать, то велик шанс, что он заметит настоящие ошибки. Тогда программист будет совсем по-другому относиться к инструменту. Он захочет отфильтровать неинтересные предупреждения, настроить анализатор под себя, изучить способы подавления ложных срабатываний в макросах и так далее.

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

С ограничением уровня предупреждений я думаю, разобрались. Теперь поговорим о количестве переходов по ошибкам.


Мы спешим на помощь


Когда "клики" кончатся, программа предложит заполнить небольшую форму с контактными данными, которые мы используем чтобы поинтересоваться, не можем ли мы чем-то помочь. После этого будут выделены дополнительные "клики".

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

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

У кого-то есть "гадкий макрос", на котором анализатор генерирует массу бессмысленных предупреждений. Человек тратит все "клики", ходя по этим предупреждениям. После чего на наш вопрос "Всё хорошо?", отвечает в духе:

Ужасно. Как таким анализатором вообще пользоваться. Я замучался проматывать сотни предупреждений с номером Vxxx.

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

Другой человек жалуется, что мешаются сообщения, относящиеся к сторонним библиотекам.

Мы подсказываем, что сообщения, относящиеся к библиотекам можно отключить в два клика мышкой. Действительно, это 2 клика.

В обоих случаях важно, что мы подсказали, как упростить работу. Если бы не было общения с нами, люди бы продолжали мучиться и скорее всего, решили даже не начинать обсуждение приобретения лицензии.


Я опытный


Осталось сказать, что делать людям, которые не считают себя новичками в сфере инструментов статического анализа. Всё просто. Свяжитесь с нами, и мы выдадим вам временный ключ для изучения анализатора.
Метки programming, tools
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для Avazart

    Не по теме:

    Прервал установку когда увидел что "оно" пытается установить без предупреждения NET для 15 версии (у меня MSVC10)

    Запись от Avazart размещена 14.06.2016 в 12:32 Avazart вне форума
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru