Где я могу найти хорошее программное обеспечение для визуализации потока с открытым исходным кодом? - PullRequest
10 голосов
/ 16 июля 2009

Я работаю над академическим исследованием некоторых очень длинных функций в ядре Linux ( ссылка , ссылка ).

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

Знаете ли вы о каком-либо хорошем проекте с открытым исходным кодом, который может визуализировать код C?

Ответы [ 4 ]

10 голосов
/ 24 июля 2009

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

KCacheGrind Call Graph

1 голос
/ 19 июля 2009

Поток истории очень удобен для изменений / различий между несколькими версиями.

У Codeplex есть проект, Визуализатор зависимостей , который также поддерживает C.

Gprof2Dot может отображать oprofile, это также даст вам динамическую информацию.

CodeViz также (статический инструмент) будет работать.

Если вы используете gcc, gcc-xml имеет плагин introspector , который также делает это.

1 голос
/ 21 июля 2009

Похоже, вы хотите получить блок-схему исходного кода C («решения», «блоки кода»).
Примерно так: Блок-схема ?

Чтобы сделать это правильно, esp. для кода ядра Linux, я ожидаю, что сначала вам придется предварительно обработать код, чтобы избавиться от макросов и условных выражений. Я бы предположил, что GCC построит такой график внутренне, и что вы должны иметь возможность получить этот граф в свои руки.

0 голосов
/ 19 июля 2009

Doxygen делает некоторую часть "визуализации",
но вам нужно немного поработать над кодом, чтобы он был пригоден для использования.


Еще одна интересная вещь для проверки: lxr

Linux Cross Referencer - это программный набор инструментов для индексации и представления репозиториев исходного кода. Изначально LXR был нацелен на исходный код Linux, но оказался пригодным для широкого круга программных проектов. lxr.linux.no в настоящее время работает на экспериментальной ветке программного обеспечения LXR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...