﻿# Ответы на вопросы читателей статей про PVS\-Studio, версия 2015

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

## А вы сообщили разработчикам? А патч отправили?

При проверке open source проектов мы почти всегда сообщаем разработчикам\. Если мы публикуем статью о проверке этого проекта, то ссылку стараемся отправить авторам проекта\. Если мы проверили проект, но ошибок на отдельную статью не набралось, то мы все\-равно отправляем авторам то, что есть\. Точнее пытаемся отправить авторам\. Иногда у авторов \(как бы странно это не звучало\) нет контактной информации, иногда их баг\-трекеры не принимают сообщений, иногда у них стоят капчи, разгадать которые не может никто\.

При этом мы никогда не отправляем патчи\. Причин этому сразу несколько:

1. Мы не знакомы с кодом и не знаем, реальную ли ошибку мы в нем нашли или все\-таки нет\. Для понимания этого нужно очень глубокое погружение в проект\.
1. Часто не ясно как исправить ошибку, даже если ошибка очевидна\.
1. Наконец цель написания наших статей \- показать возможность анализатора кода, который мы разрабатываем\. То есть показать, что наш инструмент реально находит ошибки в настоящем, живом коде\. Мы не ставим для себя целью исправление ошибок\. Нам надо показать только лишь, что инструмент их находит\.

## Какую версию этого проекта вы проверяли? Trunk \(или stable\)? Так надо stable \(или trunk\)\!

С вероятностью 99% это был trunk\. Но это не важно\! Самое плохое, что можно сделать, это начать править ошибки в коде, основываясь на нашей статье\.

Мы можем ошибаться и ошибки нет\. Мы можем пропустить другие ошибки\. Особенно забавно, когда сразу двое добровольцев правят один и тот же код, прочитав статью\. Уже были такие случаи\. В статье написано, что перепутан 2 и 3 аргумент функции memset\(\)\. Первый меняет эти аргументы\. Всё правильно\. А потом второй человек, ещё раз меняет аргументы\. В результате, получается то, что и было\. :\)

Разработчики проверяемого проекта увидят статью\. Увидят, что можно найти ошибки\. Они спокойно проверят код с помощью PVS\-Studio и сами поправят ошибки\. 

Также надо понимать, что за время проверки проекта и написания статьи \(это не 15 минут, вообще\-то\) код скорее всего поменялся, и полагаться на статью не стоит\. Как минимум могли "уехать" номера строк кода\.

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

## А вы проверяли проект ТАКОЙ\_ТО?

Возможно, мы уже проверили этот проект и написали про него статью\. Если так, то скорее всего он перечислен в списке в статье "[Обновляемый список open\-source проектов, которые мы проверили с помощью PVS\-Studio](https://pvs-studio.ru/ru/blog/inspections/)"\. Некоторые проекты мы проверяем несколько раз, так как они активно развиваются, и мы можем показывать все новые и новые ошибки\.

Также может быть, что мы проект проверили, но ошибок на отдельную статью там не набралось\. Тем не менее, вы можете поискать этот проект в нашей [базе ошибок, обнаруженных нами в open source проектах с помощью статического анализа](https://pvs-studio.ru/ru/blog/examples/)\.

Наконец бывает и так, что мы проверяем проект и не находим в нем ошибок\. Как правило это бывает с очень качественными проектами, написанными 1\-2 людьми \(поэтому имеющих маленький размер кода\)\.

## А что так МАЛО?

Статья о проверке проекта не является исчерпывающим отчётом проверки\. В ней лишь описаны самые интересные и подозрительные места, по мнению автора\. Для более подробного анализа исходных файлов вы можете самостоятельно перепроверить проект\. Разработчики проверенных проектов могут написать нам на **support@viva64\.com** свои вопросы и предложения\.

## А есть версия PVS\-Studio под Linux?

Да\. [PVS\-Studio для Linux](https://pvs-studio.ru/ru/blog/posts/0441/)\.

## Вы проверяли PVS\-Studio с помощью PVS\-Studio? Где статья о результатах проверки?

Мы регулярно проверяем наш статический анализатор самим собой\. 

Во\-первых, у нас используется инкрементальный анализ\. То есть анализатор автоматически стартует на файлах, которые только что были перекомпилированы\. И ошибки \(которые обнаруживаются анализатором\) если и появляются в нашем коде, то сразу же исправляются\. При этом они не попадают ни в систему контроля версий, ни в баг\-трекер\.

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

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