>
>
Взят рубеж в 1000 примеров ошибок, найд…

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

Взят рубеж в 1000 примеров ошибок, найденных в публичных проектах!

В нашей базе ошибок, обнаруженных в Open Source проектах разработчиками PVS-Studio с помощью статического анализа кода уже 1000 примеров программных дефектов!

Некоторое время назад мы начали собирать в одном месте все ошибки, которые нам удается найти с помощью PVS-Studio в открытых проектах. Хотя мы, как и раньше, продолжаем писать статьи о проверенных (например, Boost) и перепроверенных (например, Chromium) проектах, мы складываем все найденные ошибки в базу. Сюда также попадают результаты проверки тех проектов, которые не тянут на отдельную статью, но, тем не менее, представляют интерес.

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

С другой стороны, мы считаем, что наша база ошибок может служить хорошим методическим материалом. Представьте, что вы пишите книгу. Или хотя бы статью о том, что плохо в деструкторах в C++ бросать исключения. Вам хочется в статью вставить примеры таких ошибок из реальных программ. Тогда вы можете найти в базе диагностику "V509. The 'throw' operator inside the destructor should be placed within the try..catch block. Raising exception inside the destructor is illegal." И посмотреть примеры ошибок, найденные с помощью диагностики V509 в таких проектах как OGRE, TortoiseSVN и Chromium. И уже в своей статье использовать эти примеры, а не абстрактные синтетические фрагменты кода. Или вот пишите вы статью про sizeof(). Вроде бы все программисты должны знать: "The sizeof() operator returns size of the pointer, and not of the array, in given expression." Однако мы открываем примеры ошибок, найденные с помощью диагностики V511, и видим ошибки в проектах Wolfenstein 3D, Chromium, MySQL, Samba. Эти примеры отлично подойдут для демонстрации в статьях.

Таким образом, наша база ошибок является отличным источником материала для написания статей по C++. Приглашаем авторов абсолютно свободно использовать нашу базу.