LINUX.ORG.RU

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

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

На хабре один товарищ до слюней пиарит продукт своей организации.

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

m0rph ★★★★★
()

для C - splint, для плюсов вроде как PC-Lint (за деньги и не знаю жив ли он сейчас). Есть ещё интеловские утилиты - но ограниченные мозгами.

статический анализ языка где a=2 и b=2 но a+b может дать в результате чё угодно - та ещё задача :)

MKuznetsov ★★★★★
()

эффективность использования?

на студенческом helloword.с, lint (предшественник splint) мог выдать до десятка предупреждений. Но это никак не говорило о неработоспособности или опасности программы, просто о том что применяются практики которые в некоторых других случаях иногда могут иметь далёкие последствия.

MKuznetsov ★★★★★
()

CLang - сам компилятор выдаёт качественные варнинги, да ещё там недавно отдельный статический анализатор появился. Хотя сам не пробовал.

Есть так-то два вида статического анализа - на основе точных алгоритмов и на основе эвристик. Способы точного анализа в целом совпадают со способами оптимизации и потому реализованы в разных компиляторах, алсо в МГУ и парочке питерских вузов работают над более глобальной штукой - построением графа выполнения программы (что умеют и компиляторы) и проверки всех ветвей выполнения для всех входных значений (а вот это компиляторам пока слабо); вроде даже уже используют для каких-то сферических модулей ядра.

А вот тупо вбитый набор правил - это та самая распиаренная утилитка и прочие standalone анализаторы; не умея в хитрые алгоритмы на уровне нормальных компиляторов, эти поделки просто проверяют типичные вещи типа копипаста и т.д. Иногда, конечно, срабатывает.

anonymous
()

Почему никто еще visual studio не назвал?

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

cppcheck

плюсую, это фактически единственный свободный статический анализатор

еще полезна утилита include-what-you-use: https://code.google.com/p/include-what-you-use

и еще некоторые проверки из кдеешной krazy: https://gitorious.org/krazy/krazy/trees/master

dt1 ★★
()

Пользуйся Языком программирования вместо крестов.

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

плюсую, это фактически единственный свободный статический анализатор

Кто о чем, а пердолик о швабодке.

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

Кто о чем, а пердолик о швабодке.

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

флаг тебе в руки и барабан на шею

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

того искать, что в случае с Coverity ты либо его покупать, либо должен у них регистрировать свой открытый проект, либо качать этот Coverity с просторов интернета

расскажи-ка, мега-советчик анонимус, каким способом пользуешься ты?

в случае с cppcheck все просто - качнул, запустил, работает

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

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

И сравнивать coverity с cppcheck просто нелепо, это совершенно разного уровня продукты.

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

Для проектов же меньшего масштаба все равно от статического анализа мало толку

проверить никогда не вредно, другое дело, когда оно по деньгам не имеет смысла

для мелких программ cppcheck - годная штука

И сравнивать coverity с cppcheck просто нелепо

не я coverity привел в пример

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

Ты упомянул cppcheck - а это не статический анализ кода, а игрушка, не далеко ушедшая от lint. Ничего свободного или хотя бы относительно доступного для простых разработчиков просто нет, и это правильный ответ. Советовать игрушки - неправильный ответ.

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

Советовать игрушки - неправильный ответ.

неправильно в максимализм ударяться, от cppcheck есть польза, поэтому я его и посоветовал

dt1 ★★
()

cppcheck - находит проблемы, однозначно полезен. Бывали ложные срабатывания.

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

и проверки всех ветвей выполнения для всех входных значений (а вот это компиляторам пока слабо);

Этак получится бесконечный цикл. Который теоретически, конечно, может и конечный. Или есть ссылки?

вроде даже уже используют для каких-то сферических модулей ядра.

???

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