首页 > 其他 > 详细

使用doxygen和graphviz来产生源代码函数调用图

时间:2014-03-26 16:11:08      阅读:540      评论:0      收藏:0      [点我收藏+]

一、问题的产生

最近需要分析一个很老的工程的源代码,源代码的内容复杂,而且找不到比较熟悉此代码的人。我这里首先要分析下函数间的调用关系,于是从网上搜索到了如下方法:使用doxygen和graphviz来自动分析函数间的调用关系。

二、工具简介


Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.

是一种从标记过的C++源代码生成文档的标准工具,也支持C,Objective-C,C#,PHP,Java,Python,IDL,Fortran,VHDL,Tcl等。

graphviz:(http://www.graphviz.org/

Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics,  software engineering, database and web design, machine learning, and in visual interfaces for other technical domains. 

是一种开源的将结构化信息展示成抽象图和网络的工具,用于网络,生物信息,软件工程,数据库和网站设计,机器学习以及其他技术领域的可视性接口。

三、生成函数调用图

安装此两种工具,然后可以方便的分析代码,生成相应的函数调用图。

1)打开DoxyWizard,弹出Doxygen配置界面。
2)如下图,标出了主要需要设置的选项
bubuko.com,布布扣

Step1:设置doxygen的工作目录,这里主要是生成doxygen运行的目录
Step2:选项设置,wizard和expert选项可以同时设置。
wizard选项卡中,选择Project Name作为工程名称,将来会显示在文档的标题中;选择Source code directory,设置源代码所在目录,Destination directory设置文档的生成目录;选择Scan recursively则递归分析源代码目录中的子目录内的源代码。

3)由于我需要从没有任何标记的源代码中分析出函数调用关系,所以还需要设置expert选项卡
bubuko.com,布布扣

如图,勾选Build选项中的与函数有关的选项,EXTRACT_ALL必须勾选

bubuko.com,布布扣

如图,由于使用到了Graphviz,所以要设置Dot选项,勾选HAVE_DOT,并设置DOT_PATH为Graphviz的bin目录。

4)最后选择Run选项卡,点击Run doxygen,生成文档文件。
5)打开文档文件,在函数的分析中即可看到函数调用图。


四、小结

利用这两个工具可以为分析代码做一个初步的准备,也可以为已标记好的代码生成比较完备的文档。

使用doxygen和graphviz来产生源代码函数调用图,布布扣,bubuko.com

使用doxygen和graphviz来产生源代码函数调用图

原文:http://blog.csdn.net/play_fun_tech/article/details/22145943

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!