Я использую Ubuntu 10.04 и изучаю программирование объектов ядра.
Я столкнулся с некоторыми довольно сложными структурами, которые мне трудно читать, поэтому я подумал, что попытаюсь найти какой-нибудь инструмент, который поможет мне их визуализировать.
Единственное, что я пока могу найти, это VCG , который имеет Пример визуализации структуры , который выглядит следующим образом:
![image](https://i.stack.imgur.com/QJohG.png)
which looks like something I'd like to use.
First thing, is that the last VCG packaged for Ubuntu is 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
Так что, очевидно, мне пришлось бы использовать эти ключи вместе с gcc
во время компиляции для генерации графических файлов .vcg из источника C.
Проблема, однако, заключается в том, что я создаю модуль ядра, который ссылается только на заголовки Linux - поскольку я стараюсь избегать перекомпиляции всего ядра, насколько это возможно. И, похоже, как только я попытаюсь использовать -fdump-tree-...
переключатели в этом контексте (модуль ядра), gcc
хочет начать компилировать и остальное ядро! ( и, очевидно, не удается как при компиляции, так и при генерации графиков .vcg - поскольку у меня нет исходников ядра, только заголовки )
Итак, мой вопрос - есть ли инструмент, который бы создавал графики структур .vcg или .dot - просто используя в качестве входных данных простой текстовый заголовочный файл? ( он не должен был бы разрешать все зависимости - просто те, которые находятся в заголовочных файлах в одном каталоге )
РЕДАКТИРОВАТЬ: на самом деле для меня не так важно, чтобы бэкэнд был, в частности, .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 ( что, к сожалению, у меня не сработало ).