Comments 33
Предлагаю перенести в какой-нибудь не закрытый блог, чтобы статью увидело большее число человек.
Весьма увлекательно читать про ошибки, понимая, что их смогла найти программа, а не человек.
Весьма увлекательно читать про ошибки, понимая, что их смогла найти программа, а не человек.
+3
Я изначально поместил статью в блог «Разработка» именно по этой причине. Но администрация Хабра видимо озабочена другими вопросами и сама перенесла статью в закрытый блог. Если кто-то считает, что статье место в «Разработке», то голосуйте за мой комментарий — может разрешат перенести.
+48
Положу распечатку Вашей статьи, в сортир в офисе, в нём постоянно лежат бесплатные газеты и журналы со 100% рекламы всякого шлака, пускай будет лежать теперь IT реклама. (ЗЫ. Офис как раз программерский...)
+5
UFO just landed and posted this here
Было бы не плохо, если б статья в epub или pdf была, а то сейчас читать времени нет, а в транспорте на читалке самое оно :)
+1
Открываете версию для печати (на сайте) и печатаете на виртуальный принтер в pdf. Мы сами pdf не выкладываем для того, чтобы оперативно править ошибки на сайте.
+3
UFO just landed and posted this here
Вы делаете медвежью услугу нам. Распространение материала в pdf на сторонних сайтах плохо тем, что он не обновляется. Мы только за пару часов исправили уже несколько ошибок в статье. Поэтому всегда лучше зайти на сайт и сделать себе самому pdf (если уж так хочется именно его).
Удалите, пожалуйста, этот pdf.
Удалите, пожалуйста, этот pdf.
+4
ох, совершенно из головы вылетело что хром умеет в пдф сохранять.
+3
А у вас есть переводы этой (или других подобных статей) ни английский?
0
Конечно!
www.viva64.com/en/a/0077/
Открываете на нашем сайте русскую статью и кликаете вверху на «English» — открывается она же на английском. Обратно — на русском. Ну или в URL меняете en на ru и наоборот.
www.viva64.com/en/a/0077/
Открываете на нашем сайте русскую статью и кликаете вверху на «English» — открывается она же на английском. Обратно — на русском. Ну или в URL меняете en на ru и наоборот.
+2
У меня есть вполне хорошие циферки по рекламе продуктов для разработчиков на stackoverflow (медийка). Очень много сайтов, где сидят англоязычные программисты, подключены к Google Adsense (Content Display Network в помощь). Неплохой roi выходит при продуманных коммуникациях внутри сообществ. Еще есть тематические группы в LinkedIn, обширные рекламные возможности в Geeknet и так далее.
0
Здесь в примере 7 ошибка. Ваше ПО нашло ее в коде, а вы снова допустили ее в тексте :)
В этом фрагменте:
В этом фрагменте:
By mistake, IDC_KEYWORD3_BOLD_CHECK is used instead of IDC_KEYWORD3_BOLD_CHECK.
0
Я только что наконец-то скачал триал PVS-STUDIO дабы таки посмотреть, будет ли это полезно. Вот небольшой experience report:
RANT
Уважаемое комьюнити! Не все кто пишет на C++ используют компилятор от Microsoft. Если вы поддерживаете C++, поддержите пожалуйста проекты Intel C++ (Intel Parallel Studio).
/RANT
Заметил, что можно получить массу ошибок если включить анализ 64-битности. Тут уже стало интересней: например правильные подсказки относительно
В целом, заметил очень много «мешающих» анализов которые захотелось отключить. Удивился механизму отключения: в property grid добавлены коды ошибок, а не их описание. Что впочем в каком-то смысле удобно.
Как всегда, раздражает «слабый» английский в документации.
- Сначала меня смутило то, что инсталлятор упомянул только 2005 и 2008 студии, в то время как на сайте пишется что поддерживается 2010я. Ладно, наверное просто забыли написать, или я невнимателен.
- В процессе установки появилась пара error box’ов о невозможности что-то зарегистрировать.
- После установки, запустил в меню процесс анализа. Получил ошибку. Ошибку отправил в support.
- Понял в чем дело. Вы, оказывается, не поддерживаете Intel C++. В связи с чем следуещее:
RANT
Уважаемое комьюнити! Не все кто пишет на C++ используют компилятор от Microsoft. Если вы поддерживаете C++, поддержите пожалуйста проекты Intel C++ (Intel Parallel Studio).
/RANT
- Ладно, переключил проект в режим Microsoft C++, благо Intel позаботилась о том чтобы это было легко. PVS заработал.
- С досадой заметил что в триале нельзя перепрыгнуть на линию, которая сгенерировала ошибку.
- Ошибки долго не анализировал, но нашел примерно вот такое:
float n = (float)_wtof(markup.c_str());
if (n != 0.0f)
{
element.Size = n;
return;
}
Не смотря на то, что спека явно декларирует что The return value is 0.0 if the input cannot be converted to a value of that type, PVS Studio выдала мне
An odd precise comparison: n != 0.0f. It’s probably better to use a comparison with defined precision: fabs(A – B) > Epsilon.
Заметил, что можно получить массу ошибок если включить анализ 64-битности. Тут уже стало интересней: например правильные подсказки относительно
memsize_t
порадовали. С другой стороны, непонятно почему именно тут появились жалобы на «dangerous magic number».В целом, заметил очень много «мешающих» анализов которые захотелось отключить. Удивился механизму отключения: в property grid добавлены коды ошибок, а не их описание. Что впочем в каком-то смысле удобно.
Как всегда, раздражает «слабый» английский в документации.
+3
Спасибо за подробное сообщение. На Ваш баг-репорт в почте уже ответили. Теперь здесь прокомментирую.
>> Сначала меня смутило то, что инсталлятор упомянул только 2005 и 2008 студии, в то время как на сайте пишется что поддерживается 2010я. Ладно, наверное просто забыли написать, или я невнимателен.
Интеграция в VS2005/2008 выполнятся инсталлятором довольно долго и это можно заметить. Интеграция в VS2010 выполняется почти мгновенно, поэтому Вы не заметили сообщения об этом.
>> В процессе установки появилась пара error box’ов о невозможности что-то зарегистрировать.
Такое иногда бывает из-за сложных вариантов конфигурации студии. Иногда несмотря на сообщения об ошибках все-таки работает как надо.
>>После установки, запустил в меню процесс анализа. Получил ошибку. Ошибку отправил в support.
Ответили, спасибо.
>> поддержите пожалуйста проекты Intel C++
Это очень сложно технически, так как Intel C++ подменяет API студии и с ним не работает то, что нужно. А экономически это не очень обоснованно.
>> С досадой заметил что в триале нельзя перепрыгнуть на линию, которая сгенерировала ошибку.
Не так. Часть сообщений скрыта, а часть — доступна. Но видимо эта концепция для триала не очень удачная.
>> С другой стороны, непонятно почему именно тут появились жалобы на «dangerous magic number».
Некоторые закладываются на размер указателя в 4 байта или 32 бита…
>> В целом, заметил очень много «мешающих» анализов которые захотелось отключить. Удивился механизму отключения: в property grid добавлены коды ошибок, а не их описание. Что впочем в каком-то смысле удобно.
Можно в меню правой кнопки мыши кликнуть «Hide all by code» — это альтернативный вариант скрытия.
>> Как всегда, раздражает «слабый» английский в документации.
Есть документация на русском.
Если есть еще вопросы, спрашивайте.
>> Сначала меня смутило то, что инсталлятор упомянул только 2005 и 2008 студии, в то время как на сайте пишется что поддерживается 2010я. Ладно, наверное просто забыли написать, или я невнимателен.
Интеграция в VS2005/2008 выполнятся инсталлятором довольно долго и это можно заметить. Интеграция в VS2010 выполняется почти мгновенно, поэтому Вы не заметили сообщения об этом.
>> В процессе установки появилась пара error box’ов о невозможности что-то зарегистрировать.
Такое иногда бывает из-за сложных вариантов конфигурации студии. Иногда несмотря на сообщения об ошибках все-таки работает как надо.
>>После установки, запустил в меню процесс анализа. Получил ошибку. Ошибку отправил в support.
Ответили, спасибо.
>> поддержите пожалуйста проекты Intel C++
Это очень сложно технически, так как Intel C++ подменяет API студии и с ним не работает то, что нужно. А экономически это не очень обоснованно.
>> С досадой заметил что в триале нельзя перепрыгнуть на линию, которая сгенерировала ошибку.
Не так. Часть сообщений скрыта, а часть — доступна. Но видимо эта концепция для триала не очень удачная.
>> С другой стороны, непонятно почему именно тут появились жалобы на «dangerous magic number».
Некоторые закладываются на размер указателя в 4 байта или 32 бита…
>> В целом, заметил очень много «мешающих» анализов которые захотелось отключить. Удивился механизму отключения: в property grid добавлены коды ошибок, а не их описание. Что впочем в каком-то смысле удобно.
Можно в меню правой кнопки мыши кликнуть «Hide all by code» — это альтернативный вариант скрытия.
>> Как всегда, раздражает «слабый» английский в документации.
Есть документация на русском.
Если есть еще вопросы, спрашивайте.
0
Отправили пробный ключик. Можно будет более просто изучить диагностики. Приведенный пример с float, это предупреждение третьего уровня. Там редко бывает что-то вкусное. Но с другой стороны, для некоторых такие ошибки действительно головная боль при работе со старыми большими проектами. Мы добавляли её по просьбе пользователей.
0
вам бы еще ссылки на код повставлять, который инспектируете.
0
Заранее извиняюсь за возможно наивный вопрос, но беглый просмотр ответа не дал, поэтому:
а анализирует ли PVS код шаблонных классов, хотя бы на основе их конкретного использования?
а анализирует ли PVS код шаблонных классов, хотя бы на основе их конкретного использования?
0
Я просто пробовал поставить триал версию какое-то время назад, и во всем проекте нашло очень мало ошибок, и все они были не в шаблонах. Поэтому и решил уточнить:-)
0
Как правило, шаблонного кода намного меньше, чем нешаблонного. Поэтому и находится там что-то реже. По поводу небольшого количества ошибок, просьба не забывать вот про это:
Статический анализ и ROI
Лев Толстой и статический анализ кода
Статический анализ и ROI
Лев Толстой и статический анализ кода
0
Сразу видно серьезные мужики — это вам не формочки в django раскладывать :)
0
А ведь большую часть этих ошибок хотя бы раз я совершал сам…
Читая, понимаешь, как нужно писать правильно.
В первую очередь — использовать готовые инструменты для однотипных действий.
Читая, понимаешь, как нужно писать правильно.
В первую очередь — использовать готовые инструменты для однотипных действий.
+1
Sign up to leave a comment.
Анонс самой большой и интересной рекламной статьи (70 листов) про статический анализ кода