工具可视化代码stream(C / C ++)
你有任何工具的使用,以减轻了解C / C ++代码的任务吗? 我们只是inheritance了其他人编写的一大段软件,我们需要迅速加快速度。 任何关于工具的build议可能会简化这项任务?
SourceInsight和C ++的理解是您可以从c / c ++代码分析(包括stream程图)中获得的最佳工具。
分析软件让您了解哪些function被调用。
如果您可以使用Linux,请尝试使用KCachegrind
我个人使用debugging器。 通过代码运行,看看它在做什么,以及去哪里是唯一的方法。
但是,你可以通过一些文档生成器来运行它(有时候)。 一个很好的例子是doxygen 。
如果打开EXTRACT_ALL选项, Doxygen非常擅长在不使用标记的情况下从代码生成图表。 您需要安装GraphViz以获取使用HAVE_DOT设置生成的图表。 我发现它已经安装了,并且让DOT_PATH在Windows上保持空白,但是在OS / X上仍然不得不直接指向点工具位置。
在ACM Queue中有一篇很棒的代码探索文章,讲述了使用Doxygen和DTrace的更多内容。
KScope基于cscope实用程序,如果您使用的是Linux(KDE)。 我曾经使用过的最好的东西(并且一直使用)删除了一些我不得不修改的不熟悉的代码,或者根据我的需要使用哪个API。 其特点是交叉引用数据库,可以用很多方式search:你可以find一个符号的全部引用,它的全局定义,查找函数的调用者/被调用者等等。 它甚至有一个内置的IDE和一个显示调用图的function。
如果你使用graphviz, Doxygen会给你类关系图,即使你没有专门准备。
有一些像埃及http://www.gson.org/egypt/egypt.html这样的工具可以工作,但只有当你匹配用于编译代码的预期GCC版本和callgraph生成器的确切版本。; codeviz也可以这样说http://www.csn.ul.ie/~mel/projects/codeviz/
其他选项是在cachegrind模式下使用的valgrind(它生成一个可以从kcachegrind程序中遵循的callgraphtypes。
我personnaly使用Visual Studiodebugging工具。
它带有“来电图表”function,可以让你在小盒子里看到东西。 另外调用堆栈和通常的手表function通常都是我所需要的
还有AspectBrowser在Eclipse 3.4.0中不能很好地工作
尝试AQtime ,这是一个分析工具,显示所有被调用的函数(以及所花费的时间),您可以设置分析的起点和终点。 他们有30天的试用期。
我在一段时间内一起使用了Borland ,并且从代码中生成了模型。 我相信它甚至会从代码生成序列图。 请记住,如果你的代码是一团糟,你的模型也将是。 据我记得,这不便宜,但有时你可以抓住一个特殊的。
Rational Quantify也提供了一个很好的调用图。
我尝试了一个名为Visustin的工具,它不是很好的graphics,但它做到了:代码stream程图。 http://www.aivosto.com/visustin.html
Doxygen是一个免费的文档生成工具(类似于Javadoc),也会产生关系图。
Doxygen,它的好处是它会让你知道锄头丑陋/好是你的代码循环依赖的类。 所以你会被迫重新考虑你的代码,虽然你可能不喜欢它:-)
Slickedit很适合浏览你不知道的大块代码。 标签function允许您在function的基础上处理代码,而不必处理其中的文件(EMACS实际上具有标签,并且与Slickedit一样好,但学习曲线稍微更陡峭)
当你遇到一个你不明白的方法,类或variables的时候,你只需要按标签去查看代码,查看它,然后popup标签。 (这些都是绑定到按键,所以它非常快)
您也可以使用find-references来查看函数/variables的使用位置。
节省大量的时间,不必去找出哪个文件在哪里。