Я использую Ubuntu 10.04 и изучаю программирование объектов ядра.
Я столкнулся с некоторыми довольно сложными структурами, которые мне трудно читать, поэтому я подумал, что попытаюсь найти какой-то инструмент, который может помочь мне визуализировать их.
Единственное, что я могу найти до сих пор, - VCG, который имеет Пример визуализации Struct, который выглядит следующим образом:
который выглядит как что-то, что я хотел бы использовать.
Первое, что последний 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
Итак, по-видимому, мне пришлось бы использовать эти ключи вместе с gcc
при компиляции, чтобы генерировать графические файлы .vcg из источника C.
Проблема, однако, в том, что я строю модуль ядра, который ссылается только на заголовки Linux - поскольку я стараюсь избегать столько, сколько я могу перекомпиляции всего ядра. И кажется, как только я попытаюсь использовать -fdump-tree-...
переключатели в этом контексте (модуль ядра), gcc
хочет начать компиляцию остальной части ядра тоже! (и, очевидно, не удается, как для компиляции, так и для генерации графиков .vcg - поскольку у меня нет источников ядра, только заголовки)
Итак, мой вопрос - есть ли инструмент, который будет генерировать графики .vcg или .dot структур - просто используя текстовый заголовочный файл в качестве входных данных? (ему не нужно было бы разрешать все зависимости - просто те из файлов заголовков в том же каталоге)
EDIT: для меня на самом деле не так важно, чтобы бэкэнд был .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
script, который затем позволяет делать такие вещи, как:
graph-easy test.vcg --as_dot | dot -Tpng -o test.vcg.png
См. также " [файлы с графическим интересом] VCG файлы" и " Diego Novillo - Re: не может найти VCG viewer" для другого vcg-to-dot script (который, к сожалению, не работал у меня).