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所有的呼叫路徑,或者被呼叫的路徑。
posted @   Sky&Zhang  阅读(146)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2016-04-05 Linux内核基础--事件通知链(notifier chain)good【转】
2016-04-05 10 个迅速提升你 Git 水平的提示【转】
2016-04-05 notifier chain — 内核通知链【转】
2016-04-05 内核通知链 学习笔记 【转】
2016-04-05 Linux内核基础--事件通知链(notifier chain)【转】
点击右上角即可分享
微信分享提示