URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 107190
[ Назад ]

Исходное сообщение
"Результаты статического анализа кода библиотеки GTK+"

Отправлено opennews , 18-Мрт-16 18:28 
Разработчики коммерческого статического анализатора PVS-Studio выполнили (http://www.viva64.com/ru/b/0383/) проверку библиотеки GTK+. В целом, в основном  выявлены опечатки и  мелкие недочеты. Из потенциальных ошибок, требующих анализа и исправления, упоминается приведение знакового типа к беззнаковому, указание оператора '=' вместо '==' в сравнении, использование одной переменной для внешнего и вложенного циклов, возможный выход за границы массива, отсутствие проверок на нулевые указатели.


URL: http://www.viva64.com/ru/b/0383/
Новость: http://www.opennet.me/opennews/art.shtml?num=44070


Содержание

Сообщения в этом обсуждении
"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 18:28 
чет дохрена пвс студии стало - совсем не покупают что ли?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено A.Stahl , 18-Мрт-16 18:36 
Причём раньше они хоть какой-то уровень своего спама поддерживали -- иногда там даже были куски забавного кода. А что теперь? 3 строки о факте проверки. Фу!

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Шурек Табуреткин , 18-Мрт-16 18:38 
И главное ж лезут повсюду... Опеннет, ЛОР. Везде все засрали :(

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 18:49 
Главное к опенсорсу никак не относятся. Требуют вьюжлстудию, которой никто из вменяемых разработчиков уж лет 5 не пользуется из-за плохой поддержки стандартов. Полный КГ/АМ.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Roman , 18-Мрт-16 18:57 
А чем вменяемые пользуются, простите?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 19:25 
Вменяемые пользуются всем тем, куда g++ можно прикрутить без танцев с бубном. QtCreator, нпаример.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 19:36 
> А чем вменяемые пользуются, простите?

Gcc и clang с редактором или ide на выбор. А MSVC не умеет C99 в 2016 году, это не инструмент а пародия.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено другойАнонимус , 19-Мрт-16 02:59 
> Без clang это не инструмент а пародия.

Visual Studio умеет в clang. Пруф: http://i.imgur.com/UKjpoER.png


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 03:22 
> Visual Studio умеет в clang. Пруф: http://i.imgur.com/UKjpoER.png

Кто будет доделывать за микрософтом их сопли и что о них можно сказать - понятно. В опенсорсе таким личностям ничего не светит - склад ума не тот. Можно быть уверенным на 99% что такие лица не освоят git даже на уровне джуниор вебдева. Отработанный материал, который пойдет на дно вместе с MS и их технологиями.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 04:33 
> Visual Studio умеет в clang. Пруф: http://i.imgur.com/UKjpoER.png
> Для установки требуется 9ГБ на всех дисках

очешуеть


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 15:32 
> 9 Гб

Это перемоґа!


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Любитель сладких персиков , 19-Мрт-16 21:04 
Там видновс10 в комплекте

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Oleg , 19-Мрт-16 13:21 
Как же быстро люди объединяются против чужого успеха.
Ребята делают анализ многих открытых продуктов. И очень интересно читать такие статьи, т.к. можно увидеть и свои огрехи. Плюс приходит понимание чего нужно избегать, чтобы потом долго и нудно не искать трудноотловимые баги.
Если кому-то не нравится их продукт - хоть аргументируйте. А лучше не читайте вовсе, проходите мимо.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 15:13 
О, флюродросеры приехали. Статьи (скорее, статья) про огрехи была бы действительно полезна, но для этого же нужно проанализировать кучу проектов, классифицировать проблемы, выделить общие причины их возникновения и подробно про это рассказать. Или просто привести весь список своих правил анализа, на что они никогда не пойдут. Но нет, они раз в неделю прогоняют новый проект и пишут бесполезную статейку в которой и читать-то нечего: в очередной раз перепутали местами аргументы memset да условие скопипастили неправильно.

> Если кому-то не нравится их продукт - хоть аргументируйте.

Сто раз уже аргументировали чем не нравится, разуйте глаза. Во-первых, это проприетарное гoвнецо которое работает только под windows. Во-вторых, они паразитируют на СПО, нечего в него не отдавая (да, _ничего_. я знаю что они отсылают найденные "баги", но толку от это нет потому что статический анализ должен проводиться регулярно, о чём они и сами пишут).

> А лучше не читайте вовсе, проходите мимо.

Это вы проходите мимо. Не хватало проплаченных защитничков всякого крапа нам тут.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:12 
> О, флюродросеры приехали. Статьи (скорее, статья) про огрехи была бы действительно полезна,
> но для этого же нужно проанализировать кучу проектов, классифицировать проблемы, выделить
> общие причины их возникновения и подробно про это рассказать. Или просто
> привести весь список своих правил анализа, на что они никогда не
> пойдут. Но нет, они раз в неделю прогоняют новый проект и
> пишут бесполезную статейку в которой и читать-то нечего: в очередной раз
> перепутали местами аргументы memset да условие скопипастили неправильно.

На самом деле у нас очень много хороших познавательных статей. Несколько примеров:

http://www.viva64.com/ru/l/full/
http://www.viva64.com/ru/a/0082/
http://www.viva64.com/ru/b/0374/
http://www.viva64.com/ru/b/0306/
http://www.viva64.com/ru/b/0265/
http://www.viva64.com/ru/b/0260/
http://www.viva64.com/ru/b/0253/
http://www.viva64.com/ru/b/0214/
http://www.viva64.com/ru/b/0287/

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


> гoвнецо которое работает только под windows.

Работать она может в разных местах. Пример: Проверка Vim при помощи PVS-Studio в
GNU/Linux - http://www.viva64.com/ru/b/0311/

Тут дело скорее в вопросе зарабатывания денег и сложности создания коробочного продукта.


> Во-вторых, они паразитируют на СПО,

Паразит это тот кто что-то берёт в ущерб своего носителя и ничего не даёт взамен. Мы, во-первых, никакого ущерба СПО не наносим. Во-вторых, делаем его чуть лучше. Где же здесь паразитизм? :)


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Sabakwaka , 21-Мрт-16 09:45 
Здесь граждане верят в «стандарты Си»! — они точно знают, что код исполняется одинаково на всех процессорах и еще много всякого.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 18:57 
> Как же быстро люди объединяются против чужого успеха.
> Ребята делают анализ многих открытых продуктов. И очень интересно читать такие статьи,
> т.к. можно увидеть и свои огрехи. Плюс приходит понимание чего нужно
> избегать, чтобы потом долго и нудно не искать трудноотловимые баги.

Большое спасибо за поддержку.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 23:33 
> Как же быстро люди объединяются против чужого успеха.

Если ты придешь на микрософтовские форумы и там что-нибудь ляпнешь про Linux - тебя там быстренько забанят. Почему бы не поступать так же с MSовскими рекламерами?

> Ребята делают анализ многих открытых продуктов.

Исходники винды они не смогут проверять по техническим причинам. Интересная асимметрия, оказывается без опенсорса эти проприерасы даже пиариться не смогут. Огого.

> Если кому-то не нравится их продукт - хоть аргументируйте.

Так уже аргументировали - это ресурс про опенсорц. Какой смысл тут размахивать проприетарным плагином для студии? Это не течнет, а винда никак не основная платформа для gtk+. Факью, идите на винфаке спамить.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:37 
> Главное к опенсорсу никак не относятся. Требуют вьюжлстудию, которой никто из вменяемых
> разработчиков уж лет 5 не пользуется из-за плохой поддержки стандартов.

По поводу Visual Studio Вы не правы. Это один из наиболее популярных и используемых инструментов разработки.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 23:52 
> По поводу Visual Studio Вы не правы. Это один из наиболее популярных
> и используемых инструментов разработки.

Особенно у тех кто что-то связанное с gtk+ программирует. Если вы делаете продукт под винду и студию - при чем тут gtk+ разработчики, для начала? Идите и чикерьте свои сорцы винды и вьюжлстудии, если сможете.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 20-Мрт-16 00:29 
> Идите и чикерьте свои сорцы винды и вьюжлстудии, если сможете.

Можем. И занимаемся этим тоже.

Анализ С/C++ открытых проектов компании Microsoft:

•    Проверка проекта Computational Network Toolkit (CNTK): http://www.viva64.com/en/b/0372/
•    ChakraCore: analysis of JavaScript-engine for Microsoft Edge: http://www.viva64.com/en/b/0370/
•    Проверка проекта CoreCLR: http://www.viva64.com/en/b/0310/
•    Проверка Windows 8 Driver Samples: http://www.viva64.com/en/b/0199/
•    Занимательная археология. Проверка Microsoft Word 1.1a: http://www.viva64.com/en/b/0245/
•    А ещё мы находили ошибки в библиотеках Visual C++: http://www.viva64.com/en/b/0163/ , http://www.viva64.com/en/b/0288/
•    Впрочем, нам далеко не всегда удается написать статью про ошибки, после проверки проектов от компании Microsoft. Не зря Microsoft славится ответственным подходом к разработке программного обеспечения и качественным кодом. Например, в проекте Casablanca я нечего не нашёл: http://www.viva64.com/en/b/0189/

Также недавно в PVS-Studio мы поддержали анализ C# проектов. Анализатор C# пока не так мощен, как C++, но всё равно нам уже есть что показать:

•    Analysis of .NET Core Libraries (CoreFX): http://www.viva64.com/en/b/0365/
•    Проверка .NET Compiler Platform (Roslyn), приуроченная к выходу первой версии PVS-Studio, в которой был поддержан анализ C# проектов: http://www.viva64.com/en/b/0363/
•    Analysis of Microsoft Code Contracts: http://www.viva64.com/en/b/0361/
•    Проверка проекта Microsoft Orleans: http://shcherbak.me/post/139216516264/checking-microsoft-orl...


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 20-Мрт-16 02:23 
Я конечно понимаю что в пиарщики идут не гроссмейстеры, но догадаться насколько опеннетчикам интересен MS и их "опенсорц" не так уж трудно. В следующий раз попробуйте запостить пару страниц мана по системному программированию Linux где-нибудь на майкрософтовских ресурсах, там вам понятнее объяснят.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Наркоман , 21-Мрт-16 09:08 
А откуда у вас право решать за всех их интерес к опенсорцу мс?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено тоже Аноним , 21-Мрт-16 09:58 
Пламенная любовь опеннетовских троллей к опенсорцу M$ - это их личные половые трудности, мы просто тактично стараемся этого не замечать.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 18:49 
Забавно. Часто не мы выкладываем какие-то новости. Просто людям нравятся наши заметки, и они хотят ими поделиться. Как например сейчас. Но нас всё журят за рекламу и спам. Интересно наблюдать со стороны.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Michael Shigorin , 21-Мрт-16 16:22 
> Но нас всё журят за рекламу и спам. Интересно наблюдать со стороны.

Нас тоже журят, притом то за "рекламу", то за "про вас ничего не слышно". :)
Не принимайте близко...

PS: хотя чем ближе к тематике ресурса, тем лучше, конечно.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено chinarulezzz , 22-Мрт-16 13:36 
>Нас тоже журят, притом то за "рекламу", то за "про вас ничего не слышно". :)

Потому что ваша "реклама" - хуже, чем если "про вас ничего не слышно" было бы.

Промотал новости на опеннете до 2014: starterkits, госзакупки, бабах с лицензиями.

Причём, starterkits рекламирует страшный дизайн и падающие программы. А госзакупки и лицензии - проблемы и юридическую волокиту.

Вот таки дела.

P.S. Не в обиду, Миш. Знаю, говорят «критикуя - предлагай». Но мне нечего предложить.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Служба ИБ , 18-Мрт-16 19:50 
А здесь не куски кода?
http://www.viva64.com/ru/b/0383/

"Результаты статического анализа кода библиотеки GTK+"
Отправлено A.Stahl , 18-Мрт-16 20:08 
Ты предлагаешь мне бегать по каким-то ссылкам чтобы ознакомиться с рекламой?
Это уже за гранью моего представление об адекватности...

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Michael Shigorin , 18-Мрт-16 20:32 
> Ты предлагаешь мне бегать по каким-то ссылкам чтобы ознакомиться с рекламой?
> Это уже за гранью моего представление об адекватности...

Ну так адекватнЕйте же наконец -- сами просили ("иногда там даже были куски забавного кода"), сами и обижаетесь, когда кто-то не поленился подсказать ответ.

А ребята нормальные, только бы и впрямь ещё под линукс спортировались, что ли...


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 21:01 
>только бы и впрямь ещё под линукс спортировались, что ли...

Вот именно, а то эти товарищи имеют наглость регулярно спамить рекламой своей PVS-Studio на сайтах для Linux, и при этом их продукт можно купить только как плагин к Microsoft Visual Studio, которая в свою очередь доступна только под ОС Windows. И после этого они удивляются негативной реакции Linux сообщества на их рекламу - мало того что PVS-Studio проприетарщина, так ещё и только под Windows да ещё и только под микрософтовский компилятор.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено виндотролль , 18-Мрт-16 21:47 
дружище, тебе забесплатно проверили твой любимый GTK+ на ошибки. Сказал бы спасибо.

Версию под линукс они могут продать под заказ, коробочной нету.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Яйцассыром , 18-Мрт-16 22:03 
то есть на складе есть, а в магазине нет? привезут только под заказ и без коробки?
чем отличается коробочная от некоробочной? за отсутствие коробки цену скинут?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено виндотролль , 18-Мрт-16 22:29 
> то есть на складе есть, а в магазине нет? привезут только под
> заказ и без коробки?
> чем отличается коробочная от некоробочной? за отсутствие коробки цену скинут?

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

Представьте, если б с вас за пульсу еще брали деньги.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено gogo , 19-Мрт-16 01:41 
Их никто не заставляется делать чтобы работало всегда и везде.
Есть ынтерпрайзный RHEL - пусть, например, сделают под него чтобы не шипело, остальное народ доделает, кому интересно.
А так - в сад.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено виндотролль , 19-Мрт-16 02:46 
Вот вы так говорите, как будто коммерческая компания вам чем-то обязана.

Я уже лет 5 как пользуюсь только линуксом дома и на работе, считаю себя линуксоидом. И каждый раз, когда кто-то говорит, что линуксоиды упороты, я пытаюсь доказать, что это не так. Но вот вы очень красочно сейчас доказываете, что я не прав.

Вас возмущает новость о том, что есть только для винды и не оперсорс? — так ребята забесплатно проделали большую работу и сделали анализ опенсорс тулкита.
Вас обижает, что вам не дали версии под линукс? — так лично вам, тем более с таким отношением, никто и не даст. Но версия под линукс существует, а значит кому-то она понадобилась.

> А так - в сад.

В сад — вам, в детский.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Led , 19-Мрт-16 02:58 
> Я уже лет 5 как пользуюсь только линуксом дома и на работе,
> считаю себя линуксоидом. И каждый раз, когда кто-то говорит, что линуксоиды
> упороты, я пытаюсь доказать, что это не так. Но вот вы
> очень красочно сейчас доказываете, что я не прав.

А толку-то - "доказывать"? Если "Я уже лет 5 как пользуюсь только линуксом" с ником вендотроль не упоротый, то кто же тогда упоротый?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено виндотролль , 19-Мрт-16 03:05 
> А толку-то - "доказывать"? Если "Я уже лет 5 как пользуюсь только
> линуксом" с ником вендотроль не упоротый, то кто же тогда упоротый?

Тот — кто считает, что ему обязан весь мир.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 15:21 
> Вот вы так говорите, как будто коммерческая компания вам чем-то обязана.

Разумеется обязана. А что интересно, мы за свои деньги должны им ещё и дифирамбы складывать? Коммерческая контора = ориентация на прибыль, а не на качество, плюс навязчивая реклама, что эта шaрaшка отлично демонстрирует - каждую неделю гoвнocтатья, при этом linux версии нет, работают только с командами, и даже цену не озвучивают чтобы побольше содрать.

> так ребята забесплатно проделали большую работу и сделали анализ опенсорс тулкита

Я сделаю забесплатно большую работу и покрашу вам дверь кaкaшками, тоже не будете возмущаться?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Michael Shigorin , 21-Мрт-16 16:24 
> Но версия под линукс существует, а значит кому-то она понадобилась.

Даже так?  А сами-то они об этом где-то пишут или без клещей и везения не узнать? :)

2 Andrey Karpov: находится только http://www.viva64.com/ru/b/0153/


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 04:20 
> Представьте, если б с вас за пульсу еще брали деньги.

С нетерпением жду этого момента! Пользователи откровенного г-на должны приплачивать за свою глупость.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено виндотролль , 18-Мрт-16 22:31 
> за отсутствие коробки цену скинут?

понятия не имею. Но я бы предположил, что итоговая цена будет, возможно, даже выше. Стоимость интеграции (чтоб не шипело) и поддержки, все-таки, будет немалая.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Илья , 18-Мрт-16 22:03 
> дружище, тебе забесплатно проверили твой любимый GTK+ на ошибки. Сказал бы спасибо.
> Версию под линукс они могут продать под заказ, коробочной нету.

команда cp сломалась?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 15:06 
> Версию под линукс они могут продать под заказ, коробочной нету.

Версию под линукс они продать не могут. Вообще не могут, потому что её нет, и не предвидится. Представитель фирмы долго об этом распинался на ЛОРе и на своём сайте. Спрос недостаточен. "Под заказ" -- только если цена заказа оплатит работу нескольких высококлассных программистов. Это значит по несколько тысяч долларов в месяц каждому разработчику на время разработки, и ещё столько же одному-двум на всё время поддержки продукта. Они уже сочли нерентабельной урезанную версию для одного пользователя за 300(?) долларов. Продают только командам по цене ~1000 долларов за человека. Да, одиночка может купить, но не меньше 4 лицензий. Я бы это "коробочной" версией не назвал.

Боюсь, кончат как владельцы Watcom C или Stony Brook Pascal, которые сдохли, имея лучший товар в своей нише.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено maximnik0 , 19-Мрт-16 16:28 
> Боюсь, кончат как владельцы Watcom C или Stony Brook Pascal, которые сдохли,
> имея лучший товар в своей нише.

Ну насчет Watcom C -лучшим я бы его не назвал ,исследовал опен версию .Оптимизации с некоторыми ключами давали "странный код" ,что на ровном месте вызывали сегментные ошибки памяти .Хорошо что потом что GPL версию игры Jagged Alliance портировали для компилятора gcc ,и не пришлось дальше возиться с Watcom C.



"Результаты статического анализа кода библиотеки GTK+"
Отправлено виндотролль , 19-Мрт-16 20:39 
> Версию под линукс они продать не могут. Вообще не могут, потому что
> её нет, и не предвидится. Представитель фирмы долго об этом распинался
> на ЛОРе и на своём сайте. Спрос недостаточен. "Под заказ" --
> только если цена заказа оплатит работу нескольких высококлассных программистов. Это значит
> по несколько тысяч долларов в месяц каждому разработчику на время разработки,
> и ещё столько же одному-двум на всё время поддержки продукта.

Ну, я помню, что на хабре представители компании на вопрос о линукс версии предлагали общаться детально. Т.е., я сделал вывод, что сделать они ее могут. Этих деталей не знал.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 21:03 
> Ну, я помню, что на хабре представители компании на вопрос о линукс
> версии предлагали общаться детально. Т.е., я сделал вывод, что сделать они
> ее могут. Этих деталей не знал.

Не читайте этот сборник слухов в и предположений. Если Вы сотрудник компании, то пишите нам на почту - будем общаться, всё покажем, всё расскажем.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 20-Мрт-16 01:42 
> Если Вы сотрудник компании, то пишите нам на почту - будем общаться, всё покажем, всё расскажем.

То есть одно из главных утверждений — что вы продаёте только компаниям — верно? А если фрилансеру-одиночке нужна лицензия на всего 1 место, пускай ищет с кем скооперироваться и купить вскладчину?

И не могли бы вы оценить стоимость разработки и поддержки линукс-версии? Либо оцените, сколько нужно продать лицензий, чтобы её окупить?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 20-Мрт-16 10:08 
> То есть одно из главных утверждений — что вы продаёте только компаниям  — верно?

Да. Причина - индивидуальным разработчикам не нужен статический анализатор. Или по крайней мере такой, за который следует платить. Ну не нужен он им. Причина сразу несколько, попробую назвать некоторые.
* Они работают с маленькими проектами где ниже плотность ошибок. http://www.viva64.com/ru/b/0158/ Поэтому контроль качества кода ещё не стоит для них так остро.
* В маленьких проектах если начинаются проблемы с качеством, намного проще выправить ситуацию. Достаточно остановиться заняться обзорами кода, рефакторингом. Т.е. можно что-то сделать в отличии от большого проекта.
* Маленький проект как правило молод и все люди которые его разрабатывали рядом. Когда проекту 10 лет, его намного сложнее, скажем портировать на 64-битную систему. Ибо никто из команды уже не знает какие темные места скрыты в коде. Анализатор приходит на помощь.
* В больших проектах траты на приобретение статического анализатора совершенно незначительны и незаметны по сравнению с прочими затратами. Для индивидуальных же разработчиков это ощутимо.
* В конце концов, то что он им не ужен подтверждается практическими наблюдениями. Вот наши эксперименты в этом направлении: http://www.viva64.com/ru/b/0320/


> А если фрилансеру-одиночке нужна лицензия на всего 1 место,
> пускай ищет с кем скооперироваться и купить вскладчину?

Не нужно для них такое решение. Проще, дешевле, удобнее взять один из бесплатных статических анализаторов кода: Cppcheck, Clang. В gcc тоже хороший набор предупреждений.


> И не могли бы вы оценить стоимость разработки и поддержки линукс-версии? Либо
> оцените, сколько нужно продать лицензий, чтобы её окупить?

Не понятно, что разрабатывать. Ядро собирается под разные системы. Дело в другом. У каждого "свой unix". Свой компилятор, своя система сборки, своя среда разработки. И в каждом случае нужен индивидуальный подход. Невозможно (сложно) сделать коробочные варианты продукта для всех сочетаний. И вот тут уже начинается индивидуальное общение. Если есть интерес - пишите от лица компании, будем обсуждать.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:17 
> PVS-Studio проприетарщина, так ещё и только под Windows да ещё и
> только под микрософтовский компилятор.

Я бы сказал по-другому. Наш клиент — это человек, обычно работающий в среде Windows в среде Visual C++. Именно поэтому мы ориентируемся на него в разработке, в статьях, везде. Но на самом деле PVS-Studio не плохо умеем gcc, (в Win mingw), clang. Хотя конечно поддерживаем их не так полноценно, как Visual C++.



"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 23:56 
> Я бы сказал по-другому. Наш клиент — это человек, обычно работающий в
> среде Windows в среде Visual C++.

При этом не понятно что вы забыли на опеннете, спамеры. Тут процент таких людей пониженный, зато процент тех кто вас за это крепко не любит - выше среднего.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 03:07 
> А ребята нормальные, только бы и впрямь ещё под линукс спортировались, что ли...

Эти нормальные ребята к опенсорцу отношения не имеют. Статических анализаторов сейчас много, coverity сканирует открытые проекты на регулярной основе.

Продажа услуг по проверке сорцов - более-менее понятна. А продажа каких-то блобов для студии - вообще о чем? И почему на опеннет?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено АнонимХ , 18-Мрт-16 18:39 
> указание оператора '=' вместо '==' в сравнении

Всегда стараюсь писать if(CONSTANT == variable). Но мне говорят: ты чо, сейчас же 21 век, никто уже не делает ошибок '='/'==', это не модно. А по-моему, это должно впитываться на уровне рефлексов у сишников, как ++i (вместо i++) у плюсплюсников.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 18:41 
> как ++i (вместо i++) у плюсплюсников.

Интересно было бы посмотреть на компилятор, который бы это не поправил, и на код, в котором это было бы критично


"Результаты статического анализа кода библиотеки GTK+"
Отправлено АнонимХ , 18-Мрт-16 18:46 
Это сторонники i++ должны доказывать правильность своей позиции. А то дойдем и до того, что const не нужно. ++i-оператор проще, с минимальной семантикой, поэтому его использование должно быть очевидно, i++ же - оператор с более сложной семантикой, его использование следует обосновать.

Может еще и for(;;) vs. while(true) вызывает у вас вопрос? :)


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Илья , 18-Мрт-16 22:06 
> Может еще и for(;;) vs. while(true) вызывает у вас вопрос? :)

к черту бизнесс-логику! даешь микрооптимизации


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 16:14 
const - промашка языка. Но, на сколько я знаю, в gcc можно переключит на mutable

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 16:15 
> Это сторонники i++ должны доказывать правильность своей позиции

Никто никому ничего не должен


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Sabakwaka , 21-Мрт-16 00:27 
> Это сторонники i++ должны доказывать правильность своей позиции. А то дойдем и
> до того, что const не нужно. ++i-оператор проще, с минимальной семантикой,
> поэтому его использование должно быть очевидно, i++ же - оператор с
> более сложной семантикой, его использование следует обосновать.
> Может еще и for(;;) vs. while(true) вызывает у вас вопрос? :)

Ты ИДИОТ.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 19:28 
> код, в котором это было бы критично

На интах уже много лет пофиг. А вот для всяких итераторов все еще важно. Проблема в том, что постфиксный инкремент должен запомнить "старое" значение и вернуть его после инкремента. А вот префиксный может вернуть ссылку на себя сразу после модификации.

Собственно создание временного объекта для "старых" значений в постфиксном инкременте все еще не каждый компилятор оптимизирует (даже если итератор на самом деле превращается в указатель и все функции inline).


"Результаты статического анализа кода библиотеки GTK+"
Отправлено all_glory_to_the_hypnotoad , 18-Мрт-16 23:09 
>  ... все еще не каждый компилятор оптимизирует (даже если итератор на самом деле превращается в указатель и все функции inline).

Это всё равно не имеет значения, даже без оптимизации такая операция довольно дешёвая. Проблемы создают только совсем нетривиальные итераторы.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:26 
> Это всё равно не имеет значения, даже без оптимизации такая операция довольно
> дешёвая. Проблемы создают только совсем нетривиальные итераторы.

Смысл писать ++i есть. Моя статья на эту тему.

Есть ли практический смысл использовать для итераторов префиксный оператор инкремента ++it, вместо постфиксного it++: http://www.viva64.com/ru/b/0093/

И другая статья, написанная по мотивам моей:

Pre vs. post increment operator – benchmark. http://silviuardelean.ro/2011/04/20/pre-vs-post-increment-op.../


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 18:44 
И конечно же компилируете свое ... с выключенными варнингами ?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено АнонимХ , 18-Мрт-16 18:56 
Конечно нет, не переводите тему. Варнинги так же должны рефлекторно восприниматься как потенциальные ошибки. Желательно Werror. А вот статический анализатор еще не использовал, кстати.

Виндовозы грешат отключением варнингов, чаще всего. Во-первых, там в стандартной библиотеке и windows-хедерах варнингов опой жуй при сборке студией. А во-вторых, проще, естественно, мышкой в свойствах проекта выбрать низкий уровень варнингов, а не осознавать, что за сообщения и как их исправить\подавить по уму


"Результаты статического анализа кода библиотеки GTK+"
Отправлено all_glory_to_the_hypnotoad , 18-Мрт-16 23:11 
Это вполне легитимная и используемая операция (т.е. присваивание в if(...) ), никакого предупреждения не будет.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено all_glory_to_the_hypnotoad , 18-Мрт-16 23:14 
да, предупреждение на самом деле есть, предлагает в скобки завернуть. Ну тогда вообще пробелмы нет.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Led , 18-Мрт-16 23:22 
да, и присаоение в if'е - не от большого ума.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 19:40 
> Всегда стараюсь писать if(CONSTANT == variable). Но мне говорят: ты чо, сейчас
> же 21 век, никто уже не делает ошибок '='/'==', это не модно.

Дарю идею:
#define IF (constant, var) ... и потом в коде IF (constant, var).


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Другой Омномним , 18-Мрт-16 19:49 
Всегда спотыкаюсь, когда читаю такой код. Привыкнуть конечно можно, но считаю, что машина должна подстраиваться под человека, а не наоборот. Компиляторы давно предупреждают о присвоении в условии, поэтому нет смысла извращаться.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено АнонимХ , 18-Мрт-16 20:10 
Наверное еще на int const n; вместо const int n; спотыкаешься? А ведь это best practice для С и плюсов, повышает внимание к деталям при чтении кода

Подстройка машины под человека - это не про С, не тот уровень


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Annimzus , 18-Мрт-16 23:03 
> как ++i (вместо i++) у плюсплюсников.

чо, серьезно?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Мяут , 19-Мрт-16 12:35 
Саттер об этом пишет в "Сложных задачах". Вот тут: http://herbsutter.com/2013/05/13/gotw-2-solution-temporary-o.../ в разделе "The iterator increment uses postincrement".

Если в кратце, постинкремент требует сохранения временного значения (так как возвращает значение до инкремента), а преинкремент - нет.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено soarin , 19-Мрт-16 14:12 
А ничего то, что его величество компилятор это дело крутит как хочет?
Причем разные по разному...

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 00:09 
А если надо сравнить две переменные?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 15:26 
> Всегда стараюсь писать if(CONSTANT == variable). Но мне говорят: ты чо, сейчас
> же 21 век, никто уже не делает ошибок '='/'==', это не модно.

Код должен быть в первую очередь понятным, а уже потом всё остальное, поэтому только variable == CONSTANT. В случае с = все современные компиляторы напишут варнинг и попросят заменять = на == или поставить дополнительные скобки. И никто кроме компилятора не спасёт вас в случае variable1 == variable2.

> А по-моему, это должно впитываться на уровне рефлексов у сишников, как ++i (вместо i++) у плюсплюсников.

Нет, это ровно такой же бред.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Я , 18-Мрт-16 19:03 
Да они задрали спамить, когда уже загнутся?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 23:23 
задрал спамить, загнись.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Андрей , 18-Мрт-16 19:17 
Раньше они по крайней мере открывали баги, а с Gtk+ не пожелали. Странно.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Led , 18-Мрт-16 23:23 
> Раньше они по крайней мере открывали баги, а с Gtk+ не пожелали. Странно.

Что "странно"? Просто не поместилось нигде.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Андрей , 19-Мрт-16 00:03 
Отчёт на листе формата А4? С чего бы это не поместилось?

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:29 
> Раньше они по крайней мере открывали баги, а с Gtk+ не пожелали.

При проверке open source проектов мы всегда сообщаем разработчикам. Если мы публикуем статью о проверке этого проекта, то ссылку стараемся отправить авторам проекта. Если мы проверили проект, но ошибок на отдельную статью не набралось, то мы все-равно отправляем авторам то, что есть.

При этом мы никогда не отправляем патчи и не открываем отдельные баги. Причин этому сразу несколько:

* Мы не знакомы с кодом и не знаем, реальную ли ошибку мы в нем нашли или все-таки нет. Для понимания этого нужно очень глубокое погружение в проект.

* Это очень много работы. Сейчас в базе уже около 10000 ошибок http://www.viva64.com/ru/examples/ . Представляете какой это объем работ?

* Наконец цель написания наших статей – показать возможность анализатора кода, который мы разрабатываем. То есть показать, что наш инструмент реально находит ошибки в настоящем, живом коде. Нам надо показать только лишь, что инструмент их находит.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 20-Мрт-16 00:20 
То-есть фирмочка всучит бинарный плагин, а дальше #%$тесь как хотите, дорогие клиенты, сами разбирая 10 000 ошибок.

Тем временем, есть уже несколько онлайн сервисов, которые помогают заниматься вопросами качества, интеграции и отлова ошибок. В случае открытых проектов они из git проекта таскают коммиты и присылают отчеты, близко к реальному времени. Поэтому у них работа строится в виде накосячил - получи репорт через полчаса. А не так что вот тебе 10 000 ошибок раз в 10 лет и бодайся как умеешь. А потом эти люди с вьюжлстудией удивляются почему их считают за каких-то динозавров, с такими то практичными технологиями.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 21-Мрт-16 02:25 
> сами разбирая 10 000 ошибок

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


> — Во-первых, пирожного! Во-вторых… Вы, чего, и пальцы за меня загибать будете?
> — Ага!
> — Во-вторых, конфет! В-третьих… ну, загибайте, загибайте! А в-третьих, мороженого…
> (позже)
> — Вы, чего, и конфеты за меня есть будете?
> — Ага!


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Андрей , 22-Мрт-16 05:17 
> Если мы публикуем статью о проверке этого проекта, то ссылку стараемся отправить авторам проекта.

Просто в конце статьи вы не упомянули, что сделаете это. И какому именно автору/ам вы отправите. Ведь проект имеет публичную почтовую рассылку.

Да, действительно, 20 марта исправления были внесены в Gtk+. Не уточнял ещё все ли, но те, что видел вошли в релиз Gtk+ 3.20.

> При этом мы никогда не отправляем патчи и не открываем отдельные баги

В GNOME можно даже патчи слать, они и их успешно игнорируют. Удивлён, что в этот раз хватило просто ссылки на статью. Впечатлились, наверное, постыдились и не стали откладывать на год-другой-третий.

Кстати, а пробовали уже coreboot обследовать? Должно быть крепкий орешек, т.к. low level C. А FreeRTOS, contiki-os?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Старик , 18-Мрт-16 19:17 
>приведение знакового типа к беззнаковому, указание оператора '=' вместо '==' в сравнении, использование одной переменной для внешнего и вложенного циклов

Ох…еть! Это, типа, «опечатки и мелкие недочеты»?! Тогда и «rm -rf / usr/lib/mylib» это просто «мелкий недочёт».


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 19:43 
>  указание оператора '=' вместо '==' в сравнении
> приведение знакового типа к беззнаковому

А компиляторы разве не ругаются на такое?


"Результаты статического анализа кода библиотеки GTK+"
Отправлено тоже Аноним , 18-Мрт-16 20:01 
for(int i = 0; i < child.size(); ++i) {
  if(value = child[i].value) {
    useValue(&value);
  }
}

В этом коде - то самое приведение (которое никак не приведет к проблемам, если child - это, например, дочерние элементы формы, и их никак не может быть больше сотни).
А также используется = в if, только не "вместо", а именно так, как задумано - и компилятор, естественно, спокойно это воспринимает. Впрочем, отличить опечатки такого рода от задуманного присвоения компилятор, увы, не в состоянии.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено другое Имя , 18-Мрт-16 21:08 
> Впрочем, отличить опечатки такого рода от задуманного присвоения компилятор, увы, не в состоянии.

if((value = child[i].value))

И никакого предупреждения от компилятора не будет.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Анон1 , 18-Мрт-16 21:26 
Давненько на C писал, но -Wall -Wextra должно помочь

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Андрей , 18-Мрт-16 21:27 
Верно, компилятор предупреждает пока не найдет доп. скобки.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено тоже Аноним , 18-Мрт-16 22:43 
Ну, уж если стараться над кодом, то стоит явно прописать сравнение с нулем, чтобы не только компилятору все было ясно с первого взгляда.
Речь не о хороших привычках, стиле и прочем, а о том, что сама семантика языка вполне допускает то, на что компилятор и статический анализатор делают стойку.
И польза от переписывания всех подобных мест в проекте масштаба GTK+ неочевидна - во-первых, это куча человекочасов специалиста, во-вторых, легко можно наделать новых ошибок при таких исправлениях. Или обнаружить, что одна ошибка компенсировалась другой, а теперь это сломано, и надо лезть глубже.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 18-Мрт-16 22:46 
if(int value = child[i].value) уже явно не очепятка, но это уже кресты.

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Led , 18-Мрт-16 23:25 
> if(int value = child[i].value) уже явно не очепятка, но это уже кресты.

Кресты. Крассные. Т.е. - клиника.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Андрей , 19-Мрт-16 02:36 
Вот бы PVS-Studio могла бы найти такой баг, как в path_name() в git. http://www.opennet.me/opennews/art.shtml?num=44068

"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 19:26 
Называется american fuzzy lop

http://lcamtuf.coredump.cx/afl/


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 20-Мрт-16 00:25 
> Называется american fuzzy lop

Отличный тул, опенсорсный и в отличие от плагина для студии работает под Linux. Но все-таки он заходит к проблеме с другого бока, это не статический анализ а осмысленная "атака". Есть еще asan/ubsan/tsan - эти для чуть иных ситуаций, но в пару к afl их взять самое то.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 12:43 
>...использование одной переменной для внешнего и вложенного циклов,...

это должен отлавливать компилятор


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:33 
>>...использование одной переменной для внешнего и вложенного циклов,...
> это должен отлавливать компилятор

Ничего он никому не должен. И подтверждение этому ошибки, которые мы нашли во многих проектах: http://www.viva64.com/ru/examples/V535/


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Аноним , 19-Мрт-16 17:52 
Толку от этого маловато - в C/C++ с этой задачей хорошо справляется компилятор. Такие утилиты нужны в безумно-типизированных, плохо-спроектированных языках, типа JavaScript.

А для отлова серьёзных ошибок у проекта должны быть хорошо документированные требования и грамотно написаннные функциональные тесты.


"Результаты статического анализа кода библиотеки GTK+"
Отправлено Andrey_Karpov , 19-Мрт-16 19:34 
> Толку от этого маловато - в C/C++ с этой задачей хорошо справляется
> компилятор. Такие утилиты нужны в безумно-типизированных, плохо-спроектированных языках,
> типа JavaScript.

Не совсем понятно, про что речь. Но если о том, что для С/С++ статический анализатор не нужен, то это очень далеко от истины. Как раз вот здесь то он очень даже нужен.
Proof: http://www.viva64.com/ru/a/0084/