【开发工具】用cinclude2dot.pl及graphviz分析头文件包孕结构

【开发工具】用cinclude2dot.pl及graphviz分析头文件包含结构

系统结构的设计很多是可以体现在头文件的结构上的。系统设计的简单明了,文件包含层次明显且有序,反之,可能乱七八糟,群魔乱舞。

下面介绍下用cinclude2dot.pl及graphviz来绘制头文件包含结构图。

cinclude2dot.pl,看名字可知,是perl脚本,将C语言头文件的包含关系转换为DOT文件。

DOT是一种文本图形描述语言。它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。具体介绍见如下网址:

官网:http://www.graphviz.org/content/dot-language

或 *:http://zh.wikipedia.org/zh-cn/DOT%E8%AF%AD%E8%A8%80

1、下载cinclude2dot.pl,可去官网下载:

http://www.flourish.org/cinclude2dot/

2、由于cinclude2dot.pl是perl脚本,所以首先要安装perl解析器。可去如下地址下载:

http://www.activestate.com/activeperl/downloads

或http://download.csdn.net/detail/ceofit/4477179

3、DOT语言绘图需要使用Graphviz工具包,Graphviz是AT&T的开源的绘图工具,使用图形显示系统或网络的结构信息。

见如下网址:

http://www.graphviz.org/Home.php

4、下载安装perl及Graphviz后即可进行分析。

我找linux0.01版本内核为例子。将cinclude2dot.pl拷到源代码根目录最方便不需要什么参数,默认目录为当前目录,一般情况下需要设置一下路径:

在当前目录建gen.bat内容如下:

perl cinclude2dot.pl --include ./linux,./linux/boot,./linux/fs,./linux/include,./linux/include/asm,./linux/include/linux,./linux/include/sys,./linux/init,./linux/kernel,./linux/lib,./linux/mm,./linux/tools >>error.txt > linux.dot
dot.exe -Tpng linux.dot -olinux.png
pause
运行后在生成的linux.png为程序的结构图。

这几条命令:

perl cinclude2dot.pl --include 头文件目录,以分号区分 --src 源文件目录,默认本目录 >>error.txt >linux.dot

error.txt为中间错误信息,linux.dot为最终生成的dot文件。

dot.exe -Tpng linux.dot -olinux.png
将dot文件转换成png图像,方便查看,也可生成pdf等文件格式。

图像如下:

【开发工具】用cinclude2dot.pl及graphviz分析头文件包孕结构

层次明显,结构比较清晰。

官网提供的CVS的结构图如下:

【开发工具】用cinclude2dot.pl及graphviz分析头文件包孕结构


提供下载:

http://download.csdn.net/detail/ceofit/4477179

包括cinclude2dot.pl,提取的dot.exe,提取的perl.exe,注意,dot.exe,perl.exe由于我本机是安装的官方安装包,没有测试提取的能否正常运行。亲测cinclude2dot.pl没问题,dot与perl如果不能运行,请下载安装包安装。