C / C ++源代码可视化?
基本上我需要生成源代码可视化的工具,如:
- 函数调用图
- 依赖关系图
- …
Doxygen对此非常优秀,尽pipe您需要安装GraphViz来获取graphics。
一旦你已经安装了所有东西,绘制graphics真的很简单。 确保你设置EXTRACT_ALL和CALL_GRAPH为真,你应该很好去。
Doxygen的这个function的完整文档在这里 ,它也有一个有用的例子 。
我强烈推荐BOUML 。 这是一个免费的UMLbuild模应用程序,它:
- 是非常快的(最快的UML工具创造,检查基准 ),
- 有坚如磐石的C ++导入支持,
- 具有很好的SVG输出支持,这一点非常重要,因为查看vector格式的大图,比如在Firefox中可以快速扩展,非常方便(可以快速切换“鸟眼”视图和类详细视图),
- 是function全面的,令人印象深刻的发展(看发展的历史 ,很难相信如此之快的进展是可能的)。
所以:将代码导入到BOUML中并在那里查看,或者导出到SVG并在Firefox中查看。
对于免费版本:
- 源在Github上作为DoUML
- 安装者可以从http://www.bouml.fr/download.html下载;
您可以查看不同的软件devise和build模工具( Rational Rose , Sparx Enterprise Architect , Umbrello等)。 他们中的大多数人都有一些function来反转源代码build模,获得UML类图,有时甚至是序列图(这与函数调用图非常接近)。
但是当你在真正的大型项目代码库上获得一些图片后,你会发现这样的图表很难阅读和理解。 不幸的是,复杂性的可视化function非常有限。
至于我,使用“分而治之”的习惯用法是比较方便的。 你可以从你的一些代码库中提取不同的function块或图层(有时足够的只是通过不同的文件夹对cpp文件进行sorting)。 另一种方法是使用一些脚本(bash,python)来创build简单的csv表,其中包含文件,类或函数的相关参数,比如“依赖数目”等)。
尝试doxygen
来自Xerces的示例输出
如果您使用Visual Studio,则可以使用2010 Ultimate版本生成序列图和依赖关系图。 但是,该版本目前仅支持.NET应用程序项目。
在未来的版本中,团队对C ++的支持很感兴趣,所以你可能需要关注。 同时,您可以在http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads上的;VS 2010架构发现和build模工具论坛中发布请求更新。 我知道产品团队喜欢听到客户对这些工具的反馈。
同时,您可以在以下主题中了解更多关于从.NET代码创build顺序图和依赖关系图的知识:
如何使用体系结构浏览器查找代码 : http : //msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
如何:从代码生成graphics文档 : http : //msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
如何:使用序列图探索代码 : http : //msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx
要试用RC版本并提供反馈,请在http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a下载;
可能是一个重复,但看看ollydbg,IDA Pro和这个网站有一些非常性感的图像的一大堆资源。
除了上面的书面工具,你可以尝试理解 。 但是,这不是免费的。
有一个名为CDOC的旧工具,我们仍然使用它来生成调用树。