目录
1 生成函数调用图的方法
分为动态分析和静态分析两种。
https://en.wikipedia.org/wiki/Call_graph 列出来大部分分析方法。
https://www.ibm.com/developerworks/cn/linux/l-graphvis/index.html?mhq=%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8&mhsrc=ibmsearch_a#icomments 讲了利用gcc编译器自带的功能生成动态分析图。
2 使用doxygen和GraphViz生成静态调用图
2.1 笔者使用的软件版本
doxygen-1.8.14 http://www.doxygen.nl/download.html
graphviz-2.38 http://www.graphviz.org/
在PC(Windwos 7、Windows 10操作系统)端按照默认方式安装即可。
2.2 使用过程图解
参考:https://www.jianshu.com/p/fe4b6b95dca5
运行doxywizard.exe,所有选择路径的栏目直接使用该工具的’Select’选定,不要复制粘贴到栏目,否则可能出现run标签的run doxygen按钮显示是灰色。路径中最好不出现中文字符,或者关于字符的选项要统一(同时为UTF-8或者同时为GB2312,否则run时可能会报错)。
完成之后即可在“输出项目的目的路径”看到输出的html文件,将index.html文件拖入浏览器(可能还要再敲一次回车)即可看到结构化的静态分析结果。
比如看函数的调用图:“文件”->“文件成员”->“函数”->“选中指定的函数”即可。