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

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

Некоторое время назад мы начали собирать в одном месте все ошибки, которые нам удается найти с помощью PVS\-Studio в открытых проектах\. Хотя мы, как и раньше, продолжаем писать статьи о проверенных \(например, [Boost](https://pvs-studio.ru/ru/blog/posts/cpp/0208/)\) и перепроверенных \(например, [Chromium](https://pvs-studio.ru/ru/blog/posts/cpp/0205/)\)  проектах, мы складываем все найденные ошибки в базу\. Сюда также попадают результаты проверки тех проектов, которые не тянут на отдельную статью, но, тем не менее, представляют интерес\.

Для чего мы собираем эту базу ошибок? Во\-первых, это, конечно же, реклама нашего анализатора кода 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](https://pvs-studio.ru/ru/blog/examples/v509/) в таких проектах как OGRE, TortoiseSVN и Chromium\. И уже в своей статье использовать эти примеры, а не абстрактные синтетические фрагменты кода\. Или вот пишите вы статью про sizeof\(\)\. Вроде бы все программисты должны знать: "The sizeof\(\) operator returns size of the pointer, and not of the array, in given expression\." Однако мы открываем примеры ошибок, найденные с помощью диагностики [V511](https://pvs-studio.ru/ru/blog/examples/v511/), и видим ошибки в проектах Wolfenstein 3D, Chromium, MySQL, Samba\. Эти примеры отлично подойдут для демонстрации в статьях\.

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