LINUX.ORG.RU

Диагностики GCC — это хорошо, но недостаточно

 , , , ,


0

7

С++ компилятор, реализованный в GCC, умеет выполнять множество полезных диагностик. Эти диагностики весьма хороши, и многие считают, что их более чем достаточно. В том числе я нередко слышу, что анализатор PVS-Studio не нужен, так как все те же диагностики имеются у GCC. Конечно, я знаю, что это не так. Это то же самое как сравнивать бесплатный Paint.NET с платным Photoshop. Вроде одно и то же, и функции общие есть. Но платный профессиональный Photoshop всегда будет мощнее, чем такие инструменты как Paint.NET.

Теперь у меня есть не только скрытое знание, но и статья. Я могу демонстрировать, что изучать предупреждения GCC это хорошо, но недостаточно. Если программист действительно заботится о качестве кода, он должен использовать такие специализированные инструменты, как PVS-Studio.

Проверка GCC была ответственным испытанием для бета-версии PVS-Studio for Linux. Это и новая операционная система, это огромное количество макросов, это и код, который уже проверен многими инструментами, и найти в котором хоть что-то непростая задача.

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

Находим ошибки в коде компилятора GCC с помощью анализатора PVS-Studio

Перемещено Aceler из proprietary

Ответ на: комментарий от utf8nowhere

У меня совсем другой повод для восторга, в шаблонной простыне от clang понять причину ошибки обчно проще, да он еще и может подскать исправления типа «ты вот тут ^ забыл this->»

annulen ★★★★★
()
Ответ на: комментарий от anonymous00

Вы могли бы сделать патчи для GCC, добавляющие недостающие проверки, и отправить в upstream.

А что они тогда будут продавать?

anonymous
()
Ответ на: комментарий от anonymous00

Услуги поддержки кода, настройки, кастомные патчи.

Можно сразу вешать табличку «банкроты» и расходиться.

anonymous
()
Ответ на: комментарий от Andrey_Karpov_2009

Вы что-то путаете. Мы никогда не отворачивались от тех, кто хочет купить. :)

Иди п*ди в другом месте:

кому: support Добрый день!

Не нашел на вашем сайте указание стоимости PVS-Studio. Какой она будет для одного разработчика?

С уважением, XXXXX.

Evgeniy Ryzhkov <evg@viva64.com> 16.11.15

кому: мне Здравствуйте, XXXXX.

Спасибо за интерес к PVS-Studio!

К сожалению, PVS-Studio не ориентирован на индивидуальных разработчиков или проекты, развиваемые как хобби. Мы работаем с командами, занятыми в разработке коммерческих приложений и предлагаем им лицензии стоимостью от 250 000 рублей. Мы не можем предложить Вам какой-то особенный недорогой вид лицензии. Как показал наш опыт, это направление бесперспективно с точки зрения бизнеса.

Evgeniy Ryzhkov OOO “Program Verification Systems” (Co Ltd)"

someoneelsenotme
()
Ответ на: комментарий от anonymous00

RedHat ведь смог

RedHat - ключевой разработчик GNU/Linux (и всякого связанного ынтерпрайза), а не просто консультант-помощник. И именно потому к ним идут люди.

anonymous
()
Ответ на: комментарий от Aswed

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

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

dzidzitop ★★
()
Ответ на: комментарий от anonymous00

Вы могли бы сделать патчи для GCC, добавляющие недостающие проверки, и отправить в upstream.

Хм... ты серьёзно? Даже если забыть о финансовой стороне (что имеет мало смысла, но всё-таки), то очень сомневаюсь, что можно взять код GCC и легко впихнуть туда код проверок. Мне кажется, что усилий потребуется немало плюс работать будет только с GCC.

DarkEld3r ★★★★★
()
Ответ на: комментарий от DarkEld3r

Серьёзно. Такая работа определенно потребует усовершенствования кодовой базы GCC, от чего FreeSoftware только выиграла бы.

Касаемо работы только GCC - так это ведь оплот FreeSoftware, нужны веские причины, чтобы вкладывать свои усилия в другие компиляторы.

anonymous00 ★★
()
Ответ на: комментарий от anonymous00

Такая работа определенно потребует усовершенствования кодовой базы GCC, от чего FreeSoftware только выиграла бы.

Ага. А ещё FreeSoftware выиграла бы, если бы ты лично начал совершенствовать кодовую базу GCC. Может даже делаешь это? Можно активнее! Или ещё лучше: ограничь свои расходы и деньги отправляй тем кто занимается «совершенствованием кодовой базы».

DarkEld3r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.