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 :
用來生成各部件之間的關係圖工具,例如網路拓蹼、軟體架構等。
step 2 : 產生一個config組態檔,檔名可以隨便取。
- doxygen -g MyDoxygen.config
step 3 : 設定config組態檔
需要將組態檔的設定由NO改為YES,才會打開相應的功能,對我來說我想看
的是function的呼叫路徑,所以以下是我的設定。
的是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所有的呼叫路徑,或者被呼叫的路徑。
【作者】sky
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
分类:
【各种使用技巧】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)【转】