В основном мне нужны инструменты, которые генерируют визуализацию исходного кода, например:
- график вызовов функций
- график зависимостей
- ...
В основном мне нужны инструменты, которые генерируют визуализацию исходного кода, например:
Doxygen действительно отлично подходит для этого, хотя вам нужно будет установить GraphViz, чтобы получить графики для рисования.
После того, как вы все установили, нарисовать графики действительно довольно просто. Убедитесь, что вы установили EXTRACT_ALL и CALL_GRAPH в true, и вы должны быть в порядке.
Полная документация по этой функции для doxygen находится здесь.
Я настоятельно рекомендую BOUML. Это бесплатное приложение моделирования UML, которое:
Итак: импортируйте свой код в BOUML и просмотрите его там, или экспортируйте в SVG и просмотрите его в Firefox.
Для бесплатной версии:
Вы можете посмотреть различные инструменты для разработки и моделирования программного обеспечения (Rational Rose, Sparx Enterprise Architect, Umbrello и т.д.). Большинство из них имеют некоторые функциональные возможности для обратного моделирования по исходному коду и получения диаграмм классов UML, а иногда даже диаграмм последовательности (и это очень близко к графику вызовов функций).
Но после того, как вы получите несколько снимков на действительно большой базе кода проекта, вы можете понять, что такие графики довольно трудно читать и понимать. Несчастные возможности визуализации сложности очень ограничены.
Как и для меня, использование идиомы "разделяй и властвуй" - более удобный подход. Вы можете извлечь из своей базы кода различные функциональные блоки или слои (достаточно просто сортировать файлы cpp разными папками). Другой способ - использовать некоторые скрипты (bash, python) для создания простых таблиц csv с заинтересованными параметрами файлов, классов или функций типа "количество зависимостей" и т.д.).
Попробуйте Doxygen
Пример вывода из Xerces
Если вы используете Visual Studio, выпуск 2010 Ultimate позволяет создавать диаграммы последовательности и графики зависимостей. Тем не менее, релиз в настоящее время поддерживает только .NET-приложения.
Команда получила большой интерес к поддержке С++ в будущей версии, поэтому вы можете захотеть оставаться на связи. Тем временем вы можете публиковать сообщения на форуме VS 2010 Architectural Discovery and Modeling Tools на http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads для запроса обновление. Я знаю, что команда продуктов любит слышать отзывы клиентов о инструментах.
Тем временем вы можете узнать больше о создании диаграмм последовательностей и диаграмм зависимостей из .NET-кода в следующих разделах:
Как найти код с помощью проводника архитектуры Архитектура: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
Как создать графические документы из кода: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
Практическое руководство. Изучите код с диаграммами последовательностей: http://msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx
Чтобы попробовать выпуск RC и предоставить обратную связь, загрузите его на http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a
Возможно, это дублирование, но проверьте ollydbg, IDA Pro и этот веб-сайт имеет целую кучу ресурсов с некоторыми очень сексуальными образами.
В дополнение к написанным выше инструментам вы можете попробовать понять. Но это не бесплатно.
Существует старый инструмент CDOC, который мы все еще используем для создания деревьев вызовов.