gpt4 book ai didi

c - 如何可视化包含/指向彼此的 C 结构图?

转载 作者:IT王子 更新时间:2023-10-29 00:22:11 26 4
gpt4 key购买 nike

我正在使用 Ubuntu 10.04,正在研究内核对象的编程。

我遇到过一些相当复杂的结构,我很难阅读,所以我想我会尝试找到一些可以帮助我可视化它们的工具。

目前我唯一能找到的是VCG ,它有一个 C Struct Visualization Example ,看起来像这样:

这看起来像我想使用的东西。

首先,为 Ubuntu 打包的最后一个 VCG 是 vcg (1.30debian-6) in 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 一起使用,才能从 C 源代码生成 .vcg 图形文件。

然而,问题是我正在构建一个内核模块,它只引用 Linux 头文件 - 因为我尽量避免重新编译整个内核。似乎,一旦我尝试在该上下文(内核模块)中使用 -fdump-tree-... 开关,gcc 就想开始编译其余部分内核也是! (并且在 .vcg 图形的编译和生成中显然失败了 - 因为我没有内核源代码,只有 header )

所以我的问题是 - 是否有一种工具可以生成结构的 .vcg 或 .dot 图 - 只需使用纯文本头文件作为输入? (它不必解决所有依赖关系 - 只需解决同一目录中头文件中的依赖关系)

编辑:实际上后端是 .vcg 或 .dot 对我来说并不那么重要,我提到它们只是因为到目前为止我已经找到了它们;欢迎任何类型的允许类似结构可视化的软件,无论后端如何:)

PS:请注意,如果您不想使用 VCG 查看器来查看 .vcg 图形,您可以将 .vcg 格式转换为 .dot 格式,并使用 graphviz 代替可视化。对我有用的是使用 graph-easy - search.cpan.org对于 perl - 它首先被打包在 Ubuntu 的 Maverick 版本中,作为 libgraph-easy-perl (但是,在 Lucid 中可以毫无问题地下载和安装 .deb 文件)。 libgraph-easy-perl 安装一个 graph-easy 脚本,然后允许执行以下操作:

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

另请参阅“[graphviz-interest] VCG files”和“Diego Novillo - Re: can't find VCG viewer”以获得另一个 vcg-to-dot 脚本(不幸的是,它对我不起作用)。

最佳答案

我在使用 doxygen 方面有很好的经验为了那个任务。它旨在从带注释的源文件创建文档,但它已经可以在没有注释的情况下为您提供很多东西,包括各种图表。Doxygen 使用点来创建图形。

关于c - 如何可视化包含/指向彼此的 C 结构图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3921931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com