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

时间:2020-03-05 18:43:15  来源:igfitidea点击:

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

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

解决方案

回答

尝试doxygen

Xerces的示例输出

回答

可能是重复的,但请查看ollydbg,IDA Pro,并且此网站上有一堆资源,其中包含一些非常性感的图像。

回答

尽管我们需要安装GraphViz才能绘制图形,但Doxygen确实非常适合此操作。

安装完所有内容后,绘制图形就非常简单。确保将EXTRACT_ALL和CALL_GRAPH设置为true,并且一切顺利。

有关Doxygen的此功能的完整文档在这里。

回答

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

但是,当我们在非常大的项目代码库中获得了一些图片之后,我们可能会意识到,这样的图形相当难以阅读和理解。不幸的是,复杂性的可视化功能非常有限。

对于我来说,使用"分而治之"的习惯用法是更方便的方法。我们可以从某些代码库中提取不同的功能块或者层(有时只需按不同的文件夹对cpp文件进行排序即可)。另一种方法是使用某些脚本(bash,python)创建具有相关文件,类或者函数(例如"依赖项数量"等)的感兴趣参数的简单csv表。

回答

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

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

因此:将代码导入BOUML并在其中查看,或者导出为SVG并在Firefox中查看。

对于免费版本:

  • 来源在Github上为DoUML
  • 可以从http://www.bouml.fr/download.html下载安装程序

回答

有一个称为CDOC的旧工具,我们仍然使用它来生成调用树。

回答

如果使用Visual Studio,则2010 Ultimate版本可让我们生成序列图和依赖图。但是,该版本当前仅支持.NET应用程序项目。

团队在将来的发行版中对支持C ++产生了浓厚的兴趣,因此我们可能需要随时关注。同时,我们可以在VS 2010体系结构发现和建模工具论坛中发布http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads以请求更新。我知道产品团队喜欢听取客户对这些工具的反馈。

同时,我们可以在以下主题中学习更多有关通过.NET代码创建序列图和依赖图的信息:

如何:使用体系结构资源管理器查找代码:http://msdn.microsoft.com/zh-cn/library/dd409431%28VS.100%29.aspx

如何:从代码生成图形文档:http://msdn.microsoft.com/zh-cn/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

如何:使用顺序图探索代码:http://msdn.microsoft.com/zh-cn/library/ee317485%28VS.100%29.aspx

要尝试RC版本并提供反馈,请从http://www.microsoft.com/downloads/details.aspx?displaylang=zh_CN&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a下载

回答

除了上面的书面工具之外,我们还可以尝试了解。但是,它不是免费的。