Linux下使用 doxygen工具帮助快速解析source code【转】

转自:https://myao0730.blogspot.com/2016/04/linux-doxygensource-code.html

Linux下使用 doxygen工具帮助快速解析source code

               
最近拿到新的开发板,需要去study各个Modules以便日后进行移植,这免不了要去trace kernel driver。但kernel source实在多如牛毛(据说已超过千万行),所以我就在找有没有什么工具可以使用。doxygen以前虽然有听过但从没想过去使用,以前我找code的方式通常都是直接grep + find (假装牛B),或者靠IDE,现在用了doxygen才发现原来这么方便 。


doxygen有几个特色:

1. 生成的document可以是线上Html格式,或者本机端的latex格式。

2. 可以汇出指定的source code路径的档案阶层。

3. 可以建立关系图,例如各个function的呼叫路径(call path),或者像是UML中的
    类别继承和协作图。

使用方式如下:

step 1 : 下载套件
    - sudo apt-get install doxygen doxygen-doc doxygen-gui graphviz graphviz-doc

               doxygen-gui : doxygen的GUI版本。
               graphviz :
                     用来生成各部件之间的关系图工具,例如网路拓蹼、软体架构等。
                     请参考 http://www.openfoundry.org/tw/foss-programs/8820-graphviz-

step 2 : 产生一个config组态档,档名可以随便取。
    - doxygen -g MyDoxygen.config

step 3 : 设定config组态档
    需要将组态档的设定由NO改为YES,才会打开相应的功能,对我来说我想看
    的是function的呼叫路径,所以以下是我的设定。

EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES
/*source路径 ,不写的话预设是当前目录*/
INPUT = /home/jinyo/My_source
/*包含子资料目录*/
RECURSIVE = YES
INLINE_SOURCES = YES
/*开启Graphviz的 dot tool*/
HAVE_DOT = YES
/*产生function的呼叫与被呼叫路径*/
CALL_GRAPH = YES
CALLER_GRAPH = YES


step 4 : 执行Cmd , 开始生成 --> doxygen MyDoxygen.config


结果如下:

1. 生成HTML格式和latex格式,但我都直接看HTML的,latex不会用。

2. 列出资料结构 ,例如:class ,struct , enum等。


3. 列出某个function所有的呼叫路径,或者被呼叫的路径。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章