Часто к нашим статьям задают одни и те же вопросы. Ответы на них мы собрали в одном месте, чтобы отвечать ссылкой на эту статью. Ведь мы, разработчики статического анализатора кода PVS-Studio, публикуем довольно большое количество статей в том числе про проверку open source проектов.
При проверке open source проектов мы почти всегда сообщаем разработчикам. Если мы публикуем статью о проверке этого проекта, то ссылку стараемся отправить авторам проекта. Если мы проверили проект, но ошибок на отдельную статью не набралось, то мы все-равно отправляем авторам то, что есть. Точнее пытаемся отправить авторам. Иногда у авторов (как бы странно это не звучало) нет контактной информации, иногда их баг-трекеры не принимают сообщений, иногда у них стоят капчи, разгадать которые не может никто.
При этом мы никогда не отправляем патчи. Причин этому сразу несколько:
С вероятностью 99% это был trunk. Но это не важно! Самое плохое, что можно сделать, это начать править ошибки в коде, основываясь на нашей статье.
Мы можем ошибаться и ошибки нет. Мы можем пропустить другие ошибки. Особенно забавно, когда сразу двое добровольцев правят один и тот же код, прочитав статью. Уже были такие случаи. В статье написано, что перепутан 2 и 3 аргумент функции memset(). Первый меняет эти аргументы. Всё правильно. А потом второй человек, ещё раз меняет аргументы. В результате, получается то, что и было. :)
Разработчики проверяемого проекта увидят статью. Увидят, что можно найти ошибки. Они спокойно проверят код с помощью PVS-Studio и сами поправят ошибки.
Также надо понимать, что за время проверки проекта и написания статьи (это не 15 минут, вообще-то) код скорее всего поменялся, и полагаться на статью не стоит. Как минимум могли "уехать" номера строк кода.
Цель подобных статей - показать возможности анализатора кода на реальном, живом программном проекте. И эта цель достигается проверкой любой версии проекта.
Возможно, мы уже проверили этот проект и написали про него статью. Если так, то скорее всего он перечислен в списке в статье "Обновляемый список open-source проектов, которые мы проверили с помощью PVS-Studio". Некоторые проекты мы проверяем несколько раз, так как они активно развиваются, и мы можем показывать все новые и новые ошибки.
Также может быть, что мы проект проверили, но ошибок на отдельную статью там не набралось. Тем не менее, вы можете поискать этот проект в нашей базе ошибок, обнаруженных нами в open source проектах с помощью статического анализа.
Наконец бывает и так, что мы проверяем проект и не находим в нем ошибок. Как правило это бывает с очень качественными проектами, написанными 1-2 людьми (поэтому имеющих маленький размер кода).
Статья о проверке проекта не является исчерпывающим отчётом проверки. В ней лишь описаны самые интересные и подозрительные места, по мнению автора. Для более подробного анализа исходных файлов вы можете самостоятельно перепроверить проект. Разработчики проверенных проектов могут написать нам на support@viva64.com свои вопросы и предложения.
Да. PVS-Studio для Linux.
Мы регулярно проверяем наш статический анализатор самим собой.
Во-первых, у нас используется инкрементальный анализ. То есть анализатор автоматически стартует на файлах, которые только что были перекомпилированы. И ошибки (которые обнаруживаются анализатором) если и появляются в нашем коде, то сразу же исправляются. При этом они не попадают ни в систему контроля версий, ни в баг-трекер.
Во-вторых, у нас настроен автоматический запуск анализатора каждую ночь на свои исходники. Поэтому даже если результаты инкрементального анализа кто-то просмотрел, то разработчикам приходят по почте отчеты об найденных и не устранённых ошибках.
В итоге, хотя мы и регулярно проверяем свой код, мы никогда не сможем написать статью об ошибках, найденных с помощью нашего анализатора в нем самом.