Как визуализировать граф структур C, которые содержат / указывают друг на друга?

Я использую Ubuntu 10.04 и изучаю программирование объектов ядра.

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

Единственное, что я смог найти, это VCG , в котором есть Пример визуализации структуры C , который выглядит так:

который выглядит как то, что я хотел бы использовать.

Во-первых, последний пакет VCG для Ubuntu - это vcg (1.30debian-6) в hardy , но пакет .deb можно без проблем загрузить и установить в Ubuntu Lucid.

Однако похоже, что этот пакет является только программой просмотра VCG (похоже, vcgviewer ). Примечания к странице vcgviewer :

To generate compiler graph data with newest gcc compilers use:
gcc -g -da -dv -fdump-tree-original-raw -fdump-tree-all-all 

Итак, очевидно, я d должен использовать эти переключатели вместе с gcc во время компиляции, чтобы сгенерировать файлы графиков .vcg из источника C.

Проблема, однако, в том, что я создаю модуль ядра, который ссылается только на заголовки Linux - поскольку я стараюсь по возможности избегать перекомпиляции всего ядра. И кажется, как только я пытаюсь использовать -fdump-tree -... переключает в этом контексте (модуль ядра), gcc хочет также начать компиляцию остальной части ядра! ( и, очевидно, не работает как при компиляции, так и при генерации графов .vcg - поскольку у меня нет исходных текстов ядра, только заголовки )

Итак, мой вопрос - есть ли инструмент, который будет создавать .vcg или. точечные диаграммы структур - просто используя файл заголовка в виде простого текста в качестве ввода? ( не нужно разрешать все зависимости - просто те, что находятся в файлах заголовков в том же каталоге )

РЕДАКТИРОВАТЬ: на самом деле для меня не так важно, чтобы серверная часть была .vcg или .dot в частности, Я упомянул их только потому, что до сих пор их нашел; приветствуется любое программное обеспечение, которое позволяет визуализировать подобные структуры, независимо от серверной части :)

PS: Обратите внимание, что если вы не хотите использовать программы просмотра VCG для просмотра графиков .vcg, вы можете преобразовать формат .vcg в .dot, и используйте для визуализации graphviz . Что сработало для меня, так это использовать graph-easy - search.cpan.org для perl - который впервые был упакован в Ubuntu с выпуском Maverick, как libgraph-easy-perl ( однако файл .deb можно - опять же - без проблем загрузить и установить в Lucid ). libgraph-easy-perl устанавливает сценарий graph-easy , который затем позволяет делать такие вещи, как:

graph-easy test.vcg --as_dot | dot -Tpng -o test.vcg.png 

См. Также " [graphviz-Interest] файлы VCG "и" Diego Novillo - Re: не могу найти программу просмотра VCG "для другого скрипта vcg-to-dot (, который, к сожалению, не сработал для меня ).

17
задан Ciro Santilli 新疆改造中心法轮功六四事件 19 July 2015 в 18:53
поделиться