2009-07-16 2 views
9

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

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

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

ответ

9

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

KCacheGrind Call Graph http://kcachegrind.sourceforge.net/html/pics/KcgShot3Large.gif

+0

Очень приятно действительно. Я попробую. –

+0

изображение повреждено. – mrgloom

0

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


Еще одна интересная вещь, чтобы проверить, будет lxr

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

1

History flow's очень удобные для изменения/различения по нескольким версиям.

Codeplex имеет проект, Dependency Visualizer который также поддерживает C.

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

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

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

1

Возможно, вы захотите приобрести блок-схему исходного кода C («решения», «блоки кода»).
Что-то вроде этого C flowchart?

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

Смежные вопросы

 Смежные вопросы