Ищу бесплатный анализатор исходного кода (дерево зависимостей функций) [закрыто]

StackOverflow https://stackoverflow.com/questions/1408908

  •  05-07-2019
  •  | 
  •  

Вопрос

Кто-нибудь знает, где я могу найти утилиту / приложение, работающее в Windows, которое анализирует исходный код C и выводит дерево функциональных зависимостей?

То, что я ищу, - это что-то в этом роде:

Строка печати-> Печатный символ-> Печатный байт->Printf

Это было полезно?

Решение

Это почти наверняка излишество, но вы можете сделать это для C, C ++, PHP, Java, C # и многих других с Доксиген (если у вас есть Точка Graphviz установлен). Вот страница с образцом дерева вызовов генерируется Doxygen/dot.

Doxygen отлично работает в Windows и может выходной HTML и несколько других форматов.

Другие советы

Инструменты, которые читают исходный код, но не понимают язык программирования в глубоком семантическом смысле, могут дать вам только приблизительное представление о графике вызовов.(Что, если вызов происходит в макросе?Что, если этот вызов происходит внутри отключенного условия препроцессора?Что, если вызов является косвенным?) Если этого достаточно, и вы действительно не хотите знать о том, что делают косвенные вызовы, то, вероятно, будут полезны такие инструменты, как Doxygen и CScope.

Если вам нужен точный график вызовов, вам нужен инструмент, который построит его, используя полное знание языка.Frama-C (см. Другой ответ) AFAIK - это один из них, хотя я не знаю, как он обрабатывает макросы и косвенные вызовы.

Не бесплатно, но Инструментарий для реинжиниринга программного обеспечения DMS и его интерфейс на языке C обладает полной возможностью обработки макросов / препроцессоров C и создает графики вызовов для системы файлов.Он специально включает точечный анализ в построение графика вызовов, чтобы дать вам консервативное приближение к тому, куда направляются косвенные вызовы функций.Видишь пример графика вызовов с черными дугами (прямые вызовы) и синими дугами (консервативно проанализированные) косвенные вызовы.

Многие инструменты создают такого рода график вызовов.Doxygen вполне может обладать наибольшим количеством вариантов представления результатов, являясь по своей сути инструментом "грамотного программирования".Инструмент с открытым исходным кодом на http://frama-c.cea.fr/ создает графики вызовов (также в точечном формате) и пытается автоматически сгруппировать функции по "сервисам": http://img23.yfrog.com/img23/8180/9il.png

CodeInsight - это коммерческий редактор, в который встроена функциональность CTAGS / CSCOPE.Он также может отображать графики дерева вызовов (и почти любые другие отношения).

Source Navigator, похоже, снова находится в разработке (последняя версия SourceNav NG была выпущена в феврале этого года).Исходный навигатор может предоставить вам деревья вызовов, зависимости классов и т.д. И т.п.Я не пробовал последние версии.Работает в Windows или X11.

http://sourcenav.berlios.de/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top