67

基本上我想要生成源代码可视化的工具,例如:

  • 函数调用图
  • 依赖图
  • ...
4

7 回答 7

57

Doxygen在这方面确实非常出色,尽管您需要安装GraphViz才能获得要绘制的图形。

一旦你安装了所有东西,绘制图表真的很简单。确保将EXTRACT_ALLCALL_GRAPH设置为 true,您应该一切顺利。

doxygen 这个函数的完整文档在这里

于 2008-08-27T12:40:43.777 回答
13

我强烈推荐BOUML。这是一个免费的 UML 建模应用程序,它:

  • 速度极快(有史以来最快的 UML 工具,查看基准测试),
  • 具有坚如磐石的 C++ 导入支持,
  • 具有强大的 SVG 导出支持,这一点很重要,因为以矢量格式查看大图(在 Firefox 中可以快速缩放)非常方便(您可以在“鸟瞰”视图和类详细视图之间快速切换),
  • 功能齐全,令人印象深刻的密集开发(看看发展历史,很难相信如此快速的进步是可能的)。

所以:将您的代码导入 BOUML 并在那里查看,或导出到 SVG 并在 Firefox 中查看。

免费版:

于 2009-05-16T20:23:39.660 回答
5

您可以查看用于软件设计和建模的不同工具(Rational RoseSparx Enterprise ArchitectUmbrello等)。他们中的大多数都有一些功能,可以通过源代码进行反向建模,并获得 UML 类图,有时甚至是序列图(这非常接近函数调用图)。

但是当你在非常大的项目代码库上获得一些图片后,你会意识到这样的图表很难阅读和理解。不幸的是,复杂性的可视化能力非常有限。

至于我,使用“分而治之”的成语是更方便的方法。您可以从您的一些代码库中提取不同的功能块或层(有时只需按不同文件夹对 cpp 文件进行排序就足够了)。另一种方法是使用一些脚本(bash、python)创建简单的 csv 表,其中包含感兴趣的文件、类或函数参数,如“依赖项数”等)。

于 2009-05-16T20:14:42.940 回答
4

试试doxygen

Xerces的示例输出

于 2008-08-26T12:23:00.830 回答
4

如果您使用 Visual Studio,2010 Ultimate 版本允许您生成序列图和依赖关系图。但是,该版本目前仅支持 .NET 应用程序项目。

该团队对在未来版本中支持 C++ 产生了浓厚的兴趣,因此您可能需要继续关注。同时,您可以在http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads的VS 2010 架构发现和建模工具论坛上发帖请求更新。我知道产品团队喜欢听取客户对工具的反馈。

同时,您可以在以下主题中了解有关从 .NET 代码创建序列图和依赖关系图的更多信息:

如何:使用架构资源管理器查找代码:http : //msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

如何:从代码生成图形文档: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下载

于 2010-02-19T00:12:51.050 回答
3

除了上面写的工具,大家可以试试看。但是,它不是免费的。

于 2010-04-02T12:03:21.803 回答
1

可能是重复的,但请查看 ollydbg、IDA Pro 和这个网站有一大堆资源和一些非常性感的图像。

于 2008-08-26T12:24:51.747 回答