C++ C/C++;源代码可视化?

C++ C/C++;源代码可视化?,c++,c,visualization,C++,C,Visualization,基本上,我需要生成源代码可视化的工具,如: 函数调用图 依赖关系图 试试看 来自的示例输出可能是重复的,但请查看ollydbg、IDA Pro,它有大量的资源,其中包含一些非常性感的图像。确实非常适合于此,尽管您需要安装才能绘制图形 一旦你把所有东西都安装好了,绘制图表就非常简单了。确保你设置为真,你应该很好去 有关doxygen此功能的完整文档如下。您可以查看用于软件设计和建模的不同工具(Rational Rose、Sparx Enterprise Architect、Umbrello等)

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

  • 函数调用图
  • 依赖关系图
试试看


来自

的示例输出可能是重复的,但请查看ollydbg、IDA Pro,它有大量的资源,其中包含一些非常性感的图像。

确实非常适合于此,尽管您需要安装才能绘制图形

一旦你把所有东西都安装好了,绘制图表就非常简单了。确保你设置为真,你应该很好去


有关doxygen此功能的完整文档如下。

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

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

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

  • 非常快(有史以来创建的最快的UML工具,请检查)
  • 有摇滚实心C++导入支持,
  • 具有强大的SVG导出支持,这一点很重要,因为以矢量格式查看大型图形非常方便,在Firefox中可以快速扩展(您可以在“鸟瞰”视图和类细节视图之间快速切换)
  • 功能齐全,令人印象深刻的集中开发(看看,很难相信有这么快的进步是可能的)
所以:将代码导入BOUML并在那里查看,或者导出到SVG并在Firefox中查看

免费版本:

  • 源作为DoUML在Github上
  • 安装程序可以从

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

<> P>团队在未来的版本中对支持C++有很大兴趣,所以你可能需要继续关注。同时,您可以在VS 2010 Architectural Discovery&Modeling Tools论坛上发布,请求更新。我知道产品团队喜欢听取客户对工具的反馈

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

如何:使用架构资源管理器查找代码

如何:从代码生成图形文档

如何:使用序列图探索代码


要尝试RC版本并提供反馈,请在

下载它。除了上述书面工具外,您还可以尝试。但是,它不是免费的。

Sweet。使用起来非常简单。GraphViz修改您的系统路径,doxygen使用它。+1我同意。在探索现有代码时,Doxygen是一个非常有用的工具。选中生成源代码的选项,您无需打开代码编辑器即可轻松浏览您的代码库……请确保还具有_DOT=Yes您指的是接口中的依赖关系(例如继承图)还是实现中的依赖关系(调用图,例如,如果A在其主体中调用B,则函数A到B之间存在一条边)?您可以尝试cppredent(),在这里您可以生成函数调用图/依赖关系图,并使用CQLinq过滤图中的元素。cppredent对开源贡献者是免费的。看看,这是一个新工具,可以使用
(Graphviz)生成代码库的可视化语言。他们有一个非常方便的试用版。Windows installer for 4.23.7可以在“文件”部分的sourceforge页面和Douml页面上找到。这家伙正在为douml debian/ubuntu创建常规版本,正如@Zeks在其他线程中建议的那样。