概述
在對源代碼走讀的過程中,我們可以借助一些工具來幫助理解源代碼的結構和函數調用關系,比如生成函數調用關系圖。
cflow工具通過分析一組C源文件,繪制出程序的邏輯流程圖和交叉引用列表,在此分析結果的基礎上,通過其他工具生成可視化的圖像文件,幫助我們理解源代碼。
環境
centos:CentOS release 7.0 (Final)或以上版本
freeswitch:v1.8.7
GCC:4.8.5
工具安裝
cflow安裝
wget https://ftp.gnu.org/gnu/cflow/cflow-latest.tar.gz tar -zxvf cflow-latest.tar.gz cd cflow-1.6 ./configure make make install
tree2dotx腳本地址,shell腳本,拷貝到本地文件直接使用
https://github.com/tinyclub/linux-0.11-lab/blob/master/tools/tree2dotx
graphviz安裝
yum install graphviz
使用方法
進入tree2dotx腳本所在目錄,按照下面的步驟操作:
cflow -T -m main /root/freeswitch-1.8.7/src/switch.c > fs.txt cat fs.txt | ./tree2dotx > fs.dot dot -Tbmp fs.dot -o fs.bmp
下載fs.bmp文件,打開查看
總結
工具挺有趣的,但是對於freeswitch這種調用比較復雜的流程,圖片看起來也比較復雜,和我使用工具的本意有差距,希望對大家有所幫助。
空空如常
求真得真