В Java есть несколько очень хороших инструментов статического анализа с открытым исходным кодом, таких как FindBugs , Checkstyle и PMD . Эти инструменты просты в использовании, очень полезны, работают на нескольких операционных системах и бесплатны .
Доступны коммерческие продукты статического анализа C ++. Несмотря на то, что такие продукты - это здорово, для студентов стоимость слишком велика, и получить пробную версию, как правило, довольно сложно.
Альтернатива - найти инструменты статического анализа C ++ с открытым исходным кодом, которые будут работать на нескольких платформах (Windows и Unix). Используя инструмент с открытым исходным кодом, он может быть изменен в соответствии с определенными потребностями. Поиск инструментов не был легкой задачей.
Ниже приведен краткий список инструментов статического анализа C ++, которые были найдены или предложены другими.
- Проверка C ++ http://sf.net/projects/cppcheck/
- Хрю http://danielwilkerson.com/oink/index.html
- Счетчик кода C и C ++ http://sourceforge.net/projects/cccc/
- Шина (из ответов)
- Свинина Мозиллы (из ответов) (теперь это часть Oink)
- Дегидра Мозиллы (из ответов)
- Используйте опцию
-Weffc++
для GNU g ++ (из ответов)
Какие другой портативный с открытым исходным кодом C ++ инструментов статического анализа , что кто -то знает и может быть рекомендовано?
Некоторые ссылки по теме.
- /programming/97454/c-static-code-analysis-tool-on-windows
- http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
- http://www.chris-lott.org/resources/cmetrics/
- Бесплатный инструмент для проверки исходного кода C / C ++ на соответствие стандартам кодирования?
- http://spinroot.com/static/
- Выбор инструмента статического анализа кода
источник
Ответы:
Oink - это инструмент, созданный поверх внешнего интерфейса Elsa C ++. Свинина Мозиллы - это вилка Эльзы / Уинк.
Смотрите: http://danielwilkerson.com/oink/index.html
источник
CppCheck является открытым исходным кодом и кроссплатформенным.
Mac OS X:
источник
choco install cppcheck
Что касается компилятора GNU, gcc уже имеет встроенную опцию, которая включает дополнительное предупреждение для -Wall. Опция -Weffc ++ касается нарушений некоторых руководящих принципов Скотта Мейерса, опубликованных в его книгах « Эффективный и более эффективный C ++ ».
В частности, опция обнаруживает следующие элементы:
источник
-Weffc++
предупреждает о тоннах конструкций, которые прекрасно работают в большой кодовой базе. Я поддерживаю предложение-Wextra
, хотя; не выходи из дома без него!В настоящее время разрабатывается, но Clang проводит анализ C и нацелен на обработку C ++ с течением времени. Это часть проекта LLVM .
Обновление : хотя на целевой странице написано «Анализатор находится в процессе непрерывной работы», он, тем не менее, теперь задокументирован как статический анализатор для C и C ++.
Вопрос: Как я могу запустить GCC / Clang для статического анализа? (только предупреждения)
Опция компилятора: -fsyntax-only
источник
Кто-то еще упомянул -Weffc ++, но на самом деле это единственное предупреждение GCC, которое я не включаю по умолчанию. Тем не менее, набор предупреждений, которые я включаю, является наиболее важным инструментом статического анализа в моем наборе. Вы можете увидеть полный список рекомендуемых предупреждений .
В итоге:
Обратите внимание, что для некоторых из них требуется новая версия gcc, поэтому вам может потребоваться исключить их из списка, если вы застряли на версии 4.5 или чем-то еще.
источник
Джон Кармак также упоминает PVS-Studio в этом интересном сообщении в блоге «Статический анализ кода» .
источник
Если под Open Source вы действительно имели в виду «бесплатный», то предварительный анализ Microsoft является хорошим. Конечно, только для Windows. Он полностью интегрирован в Visual Studio и компилятор. например:
источник
Работа статического анализа Mozilla, вероятно, стоит посмотреть.
источник
Сплинт, кажется, заполняет счет за C.
Если бы вы не указали открытый исходный код, я бы сказал, что PCLint от Gimpel Software, вероятно, является одним из лучших инструментов для статической проверки кода в C ++. Но, конечно, это не с открытым исходным кодом.
Mac OS X:
источник
Microsoft PREFast также доступен в комплекте драйверов Windows. Версия 7.0 доступна для скачивания здесь .
Документы Microsoft утверждают, что его следует запускать только с кодом драйвера, но в этом (старом) посте блога изложены шаги для его запуска. Возможно, его можно интегрировать в обычный процесс сборки?
источник
Мы работали над подключаемым модулем Eclipse CDT, который называется metriculator. Он все еще находится в стадии разработки, но некоторые основные метрики (например, LSLOC, McCabe, EfferentCoupling) уже реализованы.
См. Http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/Documentation для получения более подробной информации, такой как демонстрация видео и документация.
Последняя ночная сборка доступна для установки через сайт обновлений по адресу: http://sinv-56013.edu.hsr.ch/metriculator/updatesite-nightly/site/
Дальнейшее описание
Метрикатор статически анализирует исходный код C ++ и генерирует программные метрики. Метрики реализованы в виде проверок Codan. Результаты анализа могут быть изучены в отдельном представлении. Каждая метрика имеет настраиваемые свойства (например, пороговое значение для «максимум строк кода на функцию»). Превышение этого порога сообщит о проблеме и создаст маркер в редакторе исходного кода.
с помощью метрикатора вы можете:
В настоящее время метрикатор поставляется со следующими метриками:
источник
Вы должны попробовать oo-browser, он имеет отличную интеграцию с xemacs
источник
Можно также кодировать расширения GCC в MELT (предметно-ориентированный язык, предназначенный для расширения GCC) или плагины GCC в C (гораздо сложнее), чтобы выполнить собственный анализ.
источник
Doxygen проводит анализ потока управления и генерирует графики. Это может быть не то, что вы ищете, но я нашел их полезными для просмотра.
источник