LINUX.ORG.RU

Живые open-source free статические анализаторы кода C++

 ,


0

6

Всем доброго дня и вечера. Итак, сабж. Есть ещё такие? А то есть проприетарный и платный PVS. Ещё знаю про Clang Analyzer. А ещё есть что-нибудь, что развивается? Интересует именно анализаторы типа PVS, то есть не во время написания кода проверяет и парсит(с этим пока вроде Clang справляется и он активно развивается), а этап перед компиляцией.

Интересуюсь с целью попробовать поюзать сие. И, возможно, помочь в разработке, ибо интересует данная тема. Кто что подскажет?

Перемещено leave из talks

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

Typical Habrahabr user

ТС явно перечитал habr. Реклама своё сделало. А Google-ом пользоваться лень.

Поддерживаю.

На Хабре ещё была статья со сравнением PVS и cppcheck. Вся суть сравнения сводилась к тому, что у cppcheck отключалась большая часть проверок, потому что с ними получался слишком длинный выхлоп, а без него PVS с лёгкостью побеждал.

Camel ★★★★★
()
Ответ на: Typical Habrahabr user от Camel

того, что хабр читаю, не скрываю. Но статьи о PVS наскучили уже. Реклама просто и всё. Но не рекламы ради я тред поднял.

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

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

Реклама бы своё сделала, если бы я купил PVS. Пока не купил - не сделала. Про анализаторы я и без статеек этих слышал.

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

упс, не зачёт мне. Я думал, что это немного по-другому работает. Спасибо за ликбез. Тема закрыта.

zamazan4ik ★★
() автор топика
Ответ на: Typical Habrahabr user от Camel

статья со сравнением PVS и cppcheck

Буду благодарен за ссылку, а то клятые рекламисты со своим PVS даже на ЛОР приходят и все с одной стороны его освещают.

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

Another typical habrahabr user

Буду благодарен за ссылку, а то клятые рекламисты со своим PVS даже на ЛОР приходят и все с одной стороны его освещают.

Элементарно гуглится, лентяй.

https://habrahabr.ru/company/pvs-studio/blog/215469/

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

ну не знаю.... cppcheck, на помей памяти, не замечал ТАКИЕ косяки.... что я сразу разубедился в его полезности.

Конкретно он не обращал внимание (вообще никакого) на присвоение значения неинициализированной переменной.

RiseOfDeath ★★★★
()

Не open-source и не free, но чисто для полноты: есть ещё https://scan.coverity.com/, это сервис который можно использовать для проверки opensource проектов. Интегрируется с travis.

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

на присвоение значения неинициализированной переменной

И в чём же проблема в присвоении значения неинициализированной переменной?

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

может он имел в виду использование значения неинициализированной переменной для присвоения значения другой переменной?

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

а что, PVS бестолковый?

Вы его тут так грязью поливаете, что попробовать захотелось.

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

Грубо говоря там было что-то типа

class A
{
   int a;
   int b[5]
   A()
   {
      //ololo, я не проинициализировал тут a
   }
   int do_action()
   {
      b[a] = a;
      a++
      if(a > 5)
      a = 0
   }
}


int main(int argc, char **argv)
{
   A a;

   a.do_action();
   return 0;
}

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 4)
Ответ на: комментарий от andreyu

Верните деньги!

cppcheck пропускает очевидные ошибки:

Так потребуйте возврата денег!

Однако скажите мне, PVS такое отлавливает? В него зашиты все основные методы из STD? А BOOST?

Camel ★★★★★
()
Ответ на: Верните деньги! от Camel

Так потребуйте возврата денег!

При чем тут возврат денег?

Однако скажите мне, PVS такое отлавливает?

Спросите у пользователей и/или разработчиков pvs.

В него зашиты все основные методы из STD? А BOOST?

Кричите громче, может вас услышат разработчики.

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

я его сильно не использовал, не так много пишу на С++.

Noob_Linux ★★★★
()

Frama-C очень годен, но он только для C. Был фронтэнд для C++, но вроде как на него забили болт за ненадобностью.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

FOSS: cppcheck, clang analyzer

Проприетарщина: PVS (не знаю), Coverity (очень хорошие отзывы), Sonar (юзал, говноватенько).

Pavval ★★★★★
()
Последнее исправление: Pavval (всего исправлений: 1)

Иногда пользуюсь clang-static-analyzer. Ничего фатального он у меня не находил. Вот этот мануал даёт представление, о том как его задействовать: http://cukic.co/2014/04/18/using-clangs-static-analyzer-to-analyze-your-project/ В новых версиях QtCreator его можно вроде бы встроить для проверки на лету.

DarthVadimius ★★★★
()

Интересуюсь с целью попробовать поюзать сие. И, возможно, помочь в разработке, ибо интересует данная тема.

Было бы очень здорово, если бы ты влился в разработку cppcheck.

Например, можно почитать статью разработчика конкурирующего проприетарного продукта (на ЛОРе обсуждалась). Автор тролль и нахал, но в статье много интересных примеров. Можно посмотреть, что из этого не отлавливается cppcheck-ом и соответственно добавить.

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

Это вроде как сторонний плагин https://github.com/OneMoreGres/qtc-cppcheck. Штука хорошая, но автор не очень обеспокоен хоть какой-то поддержкой зоопарка версий.

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 2)

open-source free

это типа закрытые?

anonymous
()

я использую cppcheck и Coverity Scan (онлайн), последний очень крут.

former_anonymous ★★★
()
Ответ на: Another typical habrahabr user от Camel

К сожалению, мы больше не развиваем и не поддерживаем проект CppCat. Вы можете почитать здесь о причинах.

Это ж рекламщики PVS и они даже не скрывают сего факта

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

Мне кажется, что стоит как раз таки помочь Clang Static Analyzer. Там и сообщество помощнее, и разрабов больше. И скорее всего оно ещё нескоро загнётся.

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

Я вообще обеими руками за то, чтобы они оба не загнулись, пусть будут...

А Clang Static Analyzer не прибит гвоздями к одноимённому компилятору?

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

прибит-прибит. Но лично я ничего не имею против clang.

Я тоже за то, чтобы жили оба. Да и не только они. Конкуренция тут только пользу принесёт.

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

Можно посмотреть, что из этого не отлавливается cppcheck-ом и соответственно добавить.

Причём, я у него на этом форуме спрашивал, не против ли он такого. (Отнимать хлеб не очень хорошо, всё-таки они старались.) И он сказал, что не против, потому как всё равно никто не добавит.

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