LINUX.ORG.RU

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

coverity

Что за такое? Где «пожевать»?

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

Лет семь назад был один из самых практичных.

cvv ★★★★★
() автор топика
Последнее исправление: cvv (всего исправлений: 1)
Ответ на: комментарий от UVV

А много они выдают по сравнению со стиралкой?

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

Шланговский

Врёшь! gdb даёшь!

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

Поддержу, кстати. Шланг тоже норм. Особенно учитывая, что его поддержка в QtCreator встроена. Правда не знаю, как у него с С, но для плюсцов збс.

UVV ★★★★★
()
Последнее исправление: UVV (всего исправлений: 1)
Ответ на: комментарий от Avial

Плюсую splint.

У меня он в vim и gvim интегрирован через syntastic. Анализ кода производится на лету прямо при сохранении файла. Все косяки как на ладони прямо сразу.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от anonymous

В смысле обхода?

Раздражают сообщения про posixlib и stdlib что ли? Это?

Вот это сообщение имеется в виду? Consider using +posixlib or +posixstrictlib to select the POSIX library, or -warnposix to suppress this message.

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

Ну смотря для чего.

Если у тебя есть открытый проект на гитхабе, можешь абсолютно легально и бесплатно подключить к нему Coverity Scan.

Если пишешь проприетарщину и у фирмы есть много зелени — можете купить пивас-студию. :))) Или Code Advisor от той же Coverity, кстати.

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

у меня ci прогоняет его на Сишном сдк, так что норм для Си тоже

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

Чего-то вспоминается про какие-то...

Дебьян-специфичные проблемы. Но так-то я бы попробовал запустить с ключом -preproc. Если будет работать, то тогда в хомяке делаем файл .splintrc и туда вписываем эту опцию. А так-то ${HOME}/.splintrc очень удобен для праильного конфигурирования splint’а. Там на каждой отдельной строке нужно указывать опции со знаком + или - (включить-выключить) и можно гибко рулить в том числе и «злобностью» splint’а.

Знать то знаю, не знаю только, насколько грамотно:

Грамотно, т.к. в 14.3.1 Preprocessing Constants самого по себе Splint Manual сказано прямо:

Splint defines the preprocessor constant S_SPLINT_S when preprocessing source files. If you want to include code that is processed only when Splint is used, surround the code with

# ifdef S_SPLINT_S

     …

# endif

Значит, нормальный ход. Но то, что unistd.h в Вашем случае приходится так обходить, вот это как раз ненормально. Посмотрите – не имеет ли смысл как-то обновить splint-data или как там он у Вас называется?

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

Вроде это legacy, в новом варианте (по моей ссылке) не требуется добавлять комментарии. Собственно с виду интеграция похожа на Coverity Scan.

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

последний, впрочем, стóит денег

Не стоит он тех денег. В нём хорошо работает только поддержка MISRA, которая нужна в очень узкоспециализированном софте. Тот же cppcheck значимо приближается к парасофту по качеству выдаваемых предупреждений, а в настройке и использовании несоизмеримо проще. Парасофт на некоторых легаси-проектах так и не удалось завести, а там, где удалось - очень много ложноположительных выстрелов, вычищать логи пришлось полуавтоматически.

Ещё есть у них Insure++, тот выдаёт более релевантные результаты и даже кое-что полезное. Но в итоге и от него отказались.

E ★★★
()

clang-analyzer использую еще cppcheck coverity pvs-studio … valgrind

xor2003
()

Оптимальность выбора достаточно сильно зависит от контекста.

Как мне кажется, лучшим вариантов будет совместное использование двух - Covery и PVS.

https://scan.coverity.com/ доступен бесплатно для open-source проектов и особенно удобен для больших проектов, с большой командой. Основная «фишка» в web-интерфейсе с возможностью совместной работы над разными частями проекта и т.п. Кроме этого там есть некий workflow для выявленных проблем, с различной классификацией/приоритезаций и т.д. Т.е. Coverity «помнит» найденные проблемы на стороне сервера, соответственно false-positives можно погасить один раз, не загромождая код хинтами анализатора.

PVS же славится выявлением целого класса copy-paste ошибок и в целом несколько особенным набором эвристик. Буквально я не сравнивал, но по ощущениям PVS (как минимум) очень хорошо дополняет Coverity. Однако, я (пока) не готов утверждать что PVS превосходит Coverity в «среднем по больнице».

В отношении других анализаторов, я бы сформулировал так: При использовании Coverity+PVS остальные анализаторы находят примерно только какие-то стилистические ошибки, близкие к косметике. Т.е. их использование после Coverity+PVS конечно уменьшает вероятность что-либо пропустить, но это будет скорее перфекционизмом (что тоже не плохо).

Тем не менее, будет любопытно увидеть баг, который не был замечен ни Coverity, ни PVS, но был выявлен посредством cppcheck, clang-analyzer и т.д. На всякий - давайте не путать статический анализ с runtime (Valgrind, Address Saninizer, UB-sanitizer и т.п.).

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Bass

Не могу сказать, не видел. Мы даже Insure++ использовали в основном как статический анализатор.

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

Угу. «Dear PVS-Studio, please check it». И три раза «ку».

https://www.viva64.com/ru/b/0600/

…. мы решили предоставить возможность бесплатного использования PVS-Studio всем, кто участвует в развитии открытых проектов, размещённых на GitHub, GitLab или Bitbucket. Авторам этих проектов никаких комментариев добавлять не потребуется.

Всем желающим мы выдаём бесплатную лицензию сроком на 1 год. Чтобы получить лицензию, необходимо:

  • Перейти на страницу: https://www.viva64.com/ru/open-source-license/
  • Ввести имя и e-mail, на который будет прислан лицензионный ключ;
  • Ввести ссылку на свой GitHub/GitLab/Bitbucket профайл;
  • Отправить запрос на бесплатную лицензию.

Profit.

anonymous
()

старый добрый ворованный pclint :D

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

Авторам этих проектов никаких комментариев добавлять не потребуется.

Ах да, извиняюсь: эту фразу я пропустил. Вот что такое репутация — напетросянишь один раз…

Истина и по сей день отстает на полчаса от клеветы, и никто не знает, где и когда она ее настигнет. … Видно, так и будут вечно гоняться друг за другом по свету два отца Брауна: один бессовестный преступник, скрывающийся от правосудия, второй — страдалец, сломленный клеветой и окруженный ореолом реабилитации.

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

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