函数调用图可以让我们更加直观地了解到源码函数直接的调用和层次关系,提高阅读源码的效率,工欲善其事,必先利其器;
1 前言
看源码的时候,心血来潮想弄一下函数之前的调用关系,想起以前doxygen配合graphviz使用可以生成比较直观的函数调用关系图,但是前提是函数的注释需要严格按照doxygen的规范,具体可以自己去搜索一下,当然使用source insight等利器也很方便;本文主要通过gcc+egypt+graphviz(dot)三个工具轻松生成源码的函数调用关系图;下图是本人在阅读FreeRTOS源码tasks.c时生成的调用关系图,具体如下所示;
2 graphviz 安装
Graphviz (Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。
ubuntu下可以直接安装;
sudo apt-get install graphviz
成功安装graphviz,这里我们就可以使用dot工具了,具体使用方法如下;
3 egypt 安装
egypt官网: http://www.gson.org/egypt/
下载后的文件为egypt-1.10.tar.gz;找到文件所在路径;
sudo find \ -name egypt-1.10.tar.gz
然后解压:
sudo tar -xvf egypt-1.10.tar.gz<