Я использую 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 (, который, к сожалению, не сработал для меня ).