繪製函數調用圖(call graph)(4):doxygen + graphviz【轉】

前言

之前的工作環境習慣了使用source insight查看函數分析代碼,切換到mac下後改用vscode,發現缺少函數調用關係圖生成。跨平臺的understand可以很好的解決,但是公司沒有購買,因此需要尋找一個免費、跨平臺的替代工具。doxygen + graphviz是不錯的選擇。

原文參考:https://blog.csdn.net/benkaoya/article/details/79763668

1 介紹

doxygen 是跨平臺的工具,官網:http://www.doxygen.nl/

支持Linux、Windows、Mac OS X系統(本文將以Windows版本爲例)。

支持C語言在內的多種語言的分析,生成的幫助文檔格式可以是CHM、RTF、PostScript、PDF、HTML和Unixman page等。

我使用doxygen的主要目的是生成函數調用關係圖,但它能做的遠不止於此,它是一款優秀的文檔自動生成工具。它可以將代碼中的註釋轉換成幫助文檔(註釋格式要符合 doxygen 要求才行,FFmpeg API Documentation 就是用doxygen自動生成的),它也可以通過靜態分析代碼,生成「頭文件引用關係圖」、「函數調用關係圖」、「繼承圖」以及「協作圖」來可視化文檔之間的關係。

 

有了這樣的工具,在發佈程序版本的同時,發佈幫助文檔也將變得簡單、高效,配合持續集成系統(如Jenkins),自動構建系統,幫助文檔可以跟隨代碼一起實時、輕鬆的發佈版本。

本文主要介紹如何使用 doxygen 生成函數調用關係圖,其他功能(如將代碼的註釋生成幫助文檔)不在本文討論範圍內,這是一個入門級的教程。

2 安裝

2.1 安裝 graphviz

官網:http://www.graphviz.org/

doxygen 自身沒辦法生成關係圖,需要依賴 graphviz 纔行,得先安裝 graphviz。根據自身系統選擇安裝的版本。

2.2 安裝doxygen

官網:http://www.doxygen.nl/

根據自身系統選擇安裝的版本。

安裝目錄下有幾個我們需要關心的:

  • 幫助手冊:有兩種版本,doxygen_manual.chm和html版

     

  • 配置文件嚮導:doxywizard.exe,通過這個嚮導可以快捷地生成配置文件,doxygen.exe 再根據配置文件分析源碼,輸出各種圖和文檔

2.3 源碼分析

1)運行 doxywizard.exe,配置 Wizard > Project 頁面

點擊 Wizard 選項卡,如下圖所示:

2)選擇程序語言

根據實際情況選擇,我這裏選擇C

3)配置 Expert > Project 頁面

3)配置 Expert > Build頁面

4)配置 Expert > Dot頁面

至此,配置完畢,可以通過 File > Save 菜單將上面所有配置導出(保存)到配置文件,以免丟失配置,配置文件默認保存在 Step1 設置的工作目錄下。

當然你也可以通過 File > Open 菜單導入(打開)一個現有的配置文件。可以打開配置文件看看,裏面參數非常多,doxywizard 圖形化的便捷性也就體現在這裏。

5)分析源碼

Run 選項卡,點擊 Run doxygen 按鈕,幕後就會根據剛纔的配置執行 doxygen.exe 命令:

6)查看分析結果

等分析完畢,最後點擊 Show HTML output 按鈕就會啓動瀏覽器顯示分析結果,如下圖所示:

7)查看doxygen分析後的結果

點開文件列表

頭文件包含關係圖與函數調用關係圖如下,從圖中可以發現,doxygen不會顯示調用的系統API。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章