Комментарии 37
А, то есть пока не бежать чинить?:)
В смысле пока вы эти будете чинить, мы еще опубликуем статью :-).
В контексте специализации PVS-Studio я бы сказал — «следователь».
---Проект Chromium и используемые в нём библиотеки состоят из 114 201 файлов на языке C и C++. Количество строк кода 30 263 757.
Мне доводилось рабатоть с проектами больше чем 40 мег кода. И оба прекрасно жили в VC 6.0-2005. Может количество проектов в солюшине зашкаливает?
В 2010 я вашим анализатором гонял Blackberry Server. Даже прикупил 2 лицензии тогда.
Были отдельные файлы больше мегaбайта.
Код тела основного потока сервера — процедура более 10 тыщ строк — пришлось просить Perforce поправить ихной продукт, что мог работать с такими файлами. Компиляция проекта шла порядка 5 часов.
В 2010 я вашим анализатором гонял Blackberry Server. Даже прикупил 2 лицензии тогда.
Ээээ… Константин? RIM?
From: Konstantin ... [mailto: ... @rim.com]
Sent: Friday, March 2, 2007 6:54 PM
To: Evgeniy Ryzhkov <...@viva64.com>
Subject: RE: Viva64
Уже и RIM нету…
Кстати компания RIM должна была стать вообще нашим первым клиентом. Но не стала (первым), потому что только NDA мы согласовывали и подписывали год. И не потому что мы такие тормозные или требовательные, просто бюрократическая машина RIM не позволяла по какой-то причине просто купить маленькую программку за несколько сотен долларов. К счастью, мы смогли выдержать это все, завершить сделку и даже пережить RIM.
Времена…
Флаг truncated должен быть равен true, если текст слишком длинный, то есть если выполняется условие if (len > kMaxShortPrintLength).
Я это понял, глядя глазами в код в течение минуты. Но ведь наверняка у вас на условии if (len > kMaxShortPrintLength)
есть ещё одна сработка вроде "expression 'len > kMaxShortPrintLength' is always false". Разве нет? Если так, то сразу становится очевидно, что вторая сработка — следствие первой, надо просто в каждом методе смотреть предупреждения по порядку.
На футболке у Андрея изображен единорог который радугой блюёт на PVS-Studio.
Представьте человека, который первый раз вас видит.
Первое, что он видит это PVS-Studio и яркая блювотина, какая ассоциация у него возникнет с вашем продуктом?
Я понимаю, что у вас крутой продукт, и искренне желаю вам успехов, но этим логотипом часть клиентов вы от себя отпугиваете.
Качественный продукт — это не только хорошее содержание, но и оформление.
Стал бы iPhone таким популярным, если бы у него на задней панели из яблока снизу выливалась цветная радуга на название.
Стал бы iPhone таким популярным, если бы у него на задней панели из яблока снизу выливалась цветная радуга на название.Не знаю, что ответить. У меня и iPhone такой. :)
Все-таки логотип это лицо компании и он не должен вызывать отторжения.
Вот на этой толстовке не плохо, только надпись PVS-Studio плохо читается.
Ещё у вас логотип CppCat классный был.
Ещё у вас логотип CppCat классный был.Вот только проект CppCat закрыт, а PVS-Studio продолжает жить :).
Проект CppCat вообще был «правильным». И логотип красивый, и цена «правильная» по лучшим рекомендациям людей. И сайт простой. И правильная система защиты от взлома. В общем, всё правильно было, вот только денег не приносило.
А PVS-Studio с радужным единорогом, и по мнению многих неправильной стратегией рекламы, лицензирования и т.д., продолжает жить и привлекать новых пользователей ;). Жизнь она такая… Да…
Говорит, что прикрутить PVS-Studio к проекту было бы правильно, но доход это не увеличит. Поэтому не будем увеличивать расходы на лицензии и ограничимся пока тестами.
На футболке у Андрея изображен единорог который радугой блюёт на PVS-Studio.Единорог блюёт на травку, а травка кишит bug'ами…
Q: Купит ли Гугл PVS, чтобы исправить ошибки в Chrome?
A: Вряд ли, потому что Гугл настолько крут, что он, вероятно, мог бы создать анализатор, превосходящий PVS-Studio по качеству поиска ошибок в коде Chrome. Но раз это до сих пор не сделано, значит приоритета исправлять мелкие (или не очень) баги в коде Chrome у Гугла нет.
Мне это как-то так видится.
А причина — описана прямо даже в этой статье: очень много ложных срабатываний и неизвестно — сколько будет стоить от них избавиться.
Среагировать на намёк можно, конечно, но это уже выходит за рамки задачи «купить XXX лицензий».
Попробуйте самостоятельно понять в чём тут дело. Я добавил комментарий "// <=" туда, куда указывает анализатор.
truncated = true никогда не присвается. Блок с присвоением дублирует предыдущий, в котором уход на return.
P.S. О, автор сам пояснил абзацем ниже свою загадку.
Chromium: шестая проверка проекта и 250 багов