Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150735
  • 博文数量: 38
  • 博客积分: 1718
  • 博客等级: 上尉
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-13 14:47
文章分类

全部博文(38)

文章存档

2012年(1)

2011年(11)

2010年(8)

2009年(18)

我的朋友

分类: LINUX

2010-01-03 14:26:39

有过阅读C/C++开源项目经历的人都有一种感觉,就是刚开始阅读这些开源项目的时候感觉无从下手,如果能通过图形的方式把开源项目的函数调用关系表现出来则会大大减少熟悉这些开源项目的时间。C/C++常用的开发环境都没有提供这样的功能,幸运的是世界上竟有CodeViz这样一款功能强大的软件,并且该软件是开源的软件,该软件的官方地址为:~mel/projects/codeviz/。codeviz需要graphviz来完成调用图的绘制,因此,在安装codeviz之前需要先安装graphviz。这两款软件的安装非常简单,这里就不再描述了。

这里主要描述本人在使用codeviz时遇到的一些问题:

在使用codeviz时需要使用的命令有:
1)打过补丁的C/C++编译器;
2)genfull,用来产生full.graph文件;
3)gengraph,用来产生调用图。

如果想要绘制调用图的源程序是C源文件,则分别执行上述3个步骤即可。但不幸的是,本人一开始就尝试使用codeviz来产生C++程序的调用图,其结果是每次都能正常产生full.graph文件,但是绘制调用图时都不成功。通过本人一段时间的研究发现,其罪魁祸首竟然是C程序与C++程序产生的full.graph不一致,具体见下图:
                               图1:C源程序产生的full.graph文件

                                     图2: c++源程序产生的full.graph文件
从上面两图不难看出问题所在了。解决办法也很简单,就是C++源程序产生的full.graph文件中多余的圆括号删除后就可以使用gengraph产生函数调用图了。但至于为什么c++源程序产生的full.graph会出现多余的圆括号本人还没有弄清楚,如果哪位仁兄找到了解决方法请在网上共享。
阅读(1249) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~