Pull to refresh

Comments 43

С Eclipse что-нибудь интегрируется?
Например, когда работаю с PyDev и подключен lint, анализ происходит на лету.
Такого для C++ нет?
cppcheck интегрируется.
Еще мне понравилось, что его в систему сборки легко включить.
О, спасибо, пропустил в статье, точно есть!
Будем пробовать :-)
Статья хорошая, но
имеем такие средства, как шаблоны и STL, превосходящие по уровню абстрактности все, что я когда-либо видел


Мне кажется, вы видели не все =)
не всегда вразумительные ошибки компилятора

тут автор наверно хотел сказать: «всегда невразумительные ошибки компилятора» (:
Думаю он хотел сказать то, что хотел. Наверно вы просто хотите развести Holy War?
Ни в коем случае, я исключительно делюсь личными наблюдениями.
Еслиб я хотел раззвести холивар, то придрался-бы к той-же фразе, что и предыдущий комментатор =))
Вы не знаете, есть ли подобные опции и анализ в компиляторах Intel и Microsoft? Может быть вы сделаете серию статей и исследуете в них эту функциональность?
хорошая идея. почитаю ключи icc
достаточно доплатить ~5k$ за Visual Studio TeamSystem и ключик /analyze для cl.exe ваш :)
Хотя если вам не хочется делать таких пожертвований Майкрософту, то есть другой вполне легальный способ того как скачать этот анализатор.
А что вы имеете против использования std::vector?
Что я могу иметь против контейнера, который рекомендован для использования по умолчанию? А вот vector — странный он немного. Почитайте, например, вот тут: alenacpp.blogspot.com/2005/06/vector.html
парсер… он такой… парсер…
там про специализацию для bool непонятно зачем включенную в стандарт
долбанный парсер!!! Я понял, в чем вопрос. У меня bool тоже убежал
>Dehydra… компилять не хотелось после Oink'a
Скоро будет идти плагином для gcc4.5. Так что можно будет использовать так же легко как и остальные продукты mozilla :)

и как можно было забыть про такой замечательный Российский продукт Viva
у меня проблемы с цифрой 64, но обещаю посмотреть!
Еще забыли про -Wconversion — клёвый флаг
А delete[] не для new[] никак не проверишь статическим анализом, для этого есть valgrind
большое спасибо. Я проглядел его мельком, думал, что он включен в -Wall. Ан нет!
Добавил в статью
Почему не проверишь?

Такое же легко можно проверить:

int * px = new int;
delete [] px;
ну да, простейшие случаи-то можно было бы и обрабатывать…
Ну как бы под статическим анализатором кода понимается попытка проверить и обработать как можно большее количество случаев. Если бы статически можно было определить всё, то уже давно бы существовала верификация кода для С++.

Собственно случай с delete/delete [] по сути ничем не отличается от выхода за пределы массива. Где-то мы можем обнаружить выход, а где-то нет, хотя он там на самом деле может быть.
> = вместо == в if'ах

int main(int argc, char* argv[]) {
if (argc = 1) return 1;
return 0;
}


$ gcc -Wall test.c

test.c: In function ‘main’:
test.c:2:3: warning: suggest parentheses around assignment used as truth value
да хотя бы варнинги выдавать какой именно шаблон выбрался из нескольких (и почему другие не выбрались)

или правильно выдавать ошибки взаимосвязей шаблонов (например gcc часто тупо выдает вам ошибку на конец файла, и упоминает имя шаблона изза которого инстанциация не получилась, в таких случаях приходится долго курить код чтобы понять отчего инстанциация не удалась)

нормализатор шаблонов тоже бы пригодился (генерирует класс который получается в результате инстанцирования всех шаблонов)

и тд и тп…
А Вы пробовали получить этот trial?
У меня не получилось… :-(
P.S. Прошу откликнуться, кому удалось.
Я заполнил какую-то ацкую анкету и подал запрос. В ответ — тишина.
Simian гибко настраивается на игнорировани констант, типов прочего, что позволяет:
а) увидеть общий код (т.е. код, где алгоритмы очень похожи)
б) дрючить программеров за копипасты
хммм, ну цели подрючить-то я не ставлю. А вот если над проектом работает несколько команд и они написали сходный код… Не, все равно не понимаю, зачем это может быть надо.
Со временем сюда можно будет добавить и анализатор из Clang'а, который уже в некотором роде поддерживает C/Obj-C и сейчас полным ходом идет работа над поддержкой С++. Apple добавила нативную поддержку анализатора в свой последний xcode и выглядит это теперь ну очень красиво (а главное удобно):
Ой зря вы забыли упомянуть PC-LINT, а ведь это самый мощный (если кто-то сможет это оспорить то я определенно узнаю что-то новое) инструмент
A license for one PC workstation is $389
Найти б 389 баксов или хорошую крякалку… Но, по-моему, в этой области мало самоотверженных людей, доводящих хорошие продукты до потребителя.
Тут есть Rational Software Analyzer в триале
www14.software.ibm.com/webapp/download/search.jsp?pn=Rational+Software+Analyzer
с интерфейсом Eclipse для различных Linux и Windows
Тут о нем кратко написано
www-01.ibm.com/software/awdtools/swanalyzer/developer/support/
(Enterprise редакция в основном дает возможность автоматического запуска стат. анализа)
А тут — полная документация он-лайн
www-01.ibm.com/support/docview.wss?rs=3352&uid=swg27012920
Вы не подскажите как сказать gcc, чтоб он выводил warring-и связанные только с моим кодом?
Вы не могли бы переформулировать вопрос? Просто не очень понятно, как узнать, где ваш код, а где нет.
Ну допустим, я использую Qt и gcc начинает ругаться на его библиотеки. Возможно ли указать ему чтоб он не выводил warring-и связанные с Qt?
Sign up to leave a comment.

Articles