Визуализация исходного кода C/C++? [закрытый]

Единственный ответ, действительно отвечающий на вопрос, - это вопрос @akash_magoon (и таким простым способом!), но он не возвращает точный объект, указанный в вопросе. Я немного реорганизовал и получил ответ в PHP, возвращающий только то, что задано:

function maximizeProfit(array $dailyPrices)
{
    $buyDay = $sellDay = $cheaperDay = $profit = 0;

    for ($today = 0; $today < count($dailyPrices); $today++) {
        if ($dailyPrices[$today] < $dailyPrices[$cheaperDay]) {
            $cheaperDay = $today;
        } elseif ($dailyPrices[$today] - $dailyPrices[$cheaperDay] > $profit) {
            $buyDay  = $cheaperDay;
            $sellDay = $today;
            $profit   = $dailyPrices[$today] - $dailyPrices[$cheaperDay];
        }
    }
    return [$buyDay, $sellDay];
}
62
задан Kirill Kobelev 21 December 2016 в 03:26
поделиться

8 ответов

Doxygen действительно превосходен для этого, хотя необходимо будет установить GraphViz, чтобы заставить графики тянуть.

, Как только Вам установили все, действительно довольно просто потянуть графики. Удостоверьтесь, что Вы устанавливаете EXTRACT_ALL и CALL_GRAPH к истинному, и необходимо быть хорошими для движения.

полная документация относительно этой функции для doxygen здесь .

54
ответ дан albert 24 November 2019 в 16:52
поделиться
3
ответ дан albert 24 November 2019 в 16:52
поделиться

Мог бы быть дублирование, но проверить ollydbg, IDA Pro и , этот веб-сайт имеет целый набор ресурсов с некоторыми очень сексуальными изображениями.

2
ответ дан Steve M 24 November 2019 в 16:52
поделиться

Я настоятельно рекомендую BOUML . Это бесплатное приложение для моделирования UML, которое:

  • чрезвычайно быстрое (самый быстрый инструмент UML из когда-либо созданных, ознакомьтесь с тестами ),
  • имеет надежную поддержку импорта C ++,
  • имеет отличный экспорт SVG поддержка, что важно, потому что просмотр больших графиков в векторном формате, который быстро масштабируется, например, в Firefox, очень удобен (вы можете быстро переключаться между представлением "с высоты птичьего полета" и представлением сведений о классе),
  • полнофункциональный, впечатляюще интенсивный разработан (посмотрите историю разработки , трудно поверить, что такой быстрый прогресс возможен).

Итак: импортируйте свой код в BOUML и просмотрите его там или экспортируйте в SVG и просмотрите его в Firefox.

Для бесплатной версии:

11
ответ дан 24 November 2019 в 16:52
поделиться

Вы можете ознакомиться с различными инструментами для проектирования и моделирования программного обеспечения ( Rational Rose , Sparx Enterprise Architect , Umbrello и т. Д. ). Большинство из них имеют некоторую функциональность для обратного моделирования по исходному коду и получения диаграмм классов UML, а иногда даже диаграмм последовательностей (и это очень близко к графику вызовов функций).

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

На мой взгляд, использование идиомы «разделяй и властвуй» - более удобный подход. Вы можете извлекать различные функциональные блоки или слои из некоторой базы кода (иногда достаточно просто сортировки cpp-файлов по разным папкам).

5
ответ дан 24 November 2019 в 16:52
поделиться

Существует старый инструмент под названием CDOC , который мы все еще используем для создания деревьев вызовов.

1
ответ дан 24 November 2019 в 16:52
поделиться

При использовании Visual Studio выпуск 2010 Ultimate позволяет создавать диаграммы последовательностей и графики зависимостей. Однако в настоящее время версия поддерживает только проекты приложений .NET.

Команда получила большой интерес к поддержке C++ в будущем выпуске, так что, возможно, вы захотите оставаться настроенными. Тем временем вы можете разместить сообщение на форуме VS 2010 Architectural Discovery & 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

, Чтобы попробовать ЕМКОСТНО-РЕЗИСТИВНЫЙ выпуск и обеспечить обратную связь, загрузите его в http://www.microsoft.com/downloads/details.aspx? displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a

3
ответ дан 24 November 2019 в 16:52
поделиться

В дополнение к написанным выше инструментам, вы можете попробовать understand. Но это не бесплатно.

3
ответ дан 24 November 2019 в 16:52
поделиться