您是否有任何工具可以简化了解C / C ++代码的任务?我们只是继承了由他人编写的大量软件,因此我们需要快速入门。关于可以简化此任务的工具的任何建议?
您是否有任何工具可以简化了解C / C ++代码的任务?我们只是继承了由他人编写的大量软件,因此我们需要快速入门。关于可以简化此任务的工具的任何建议?
Answers:
SourceInsight和Understand for C ++是获得c / c ++代码分析(包括流程图)的最佳工具。
分析软件使您可以了解已调用了哪些功能。
如果可以使用Linux,请尝试使用KCachegrind
如果打开EXTRACT_ALL选项,则Doxygen非常擅长从代码生成图而无需应用标记。您需要安装GraphViz才能使用HAVE_DOT设置生成图表。我发现已安装它,而在Windows上将DOT_PATH保留为空白可以正常工作,但在OS / X上,必须直接指向点工具位置。
ACM Queue中有一篇非常出色的Code Spelunking文章,其中讨论了有关使用doxygen和DTrace的更多信息。
我个人使用调试器。遍历代码,看看它在做什么,去哪里是唯一的方法。
但是,您可以通过某些文档生成器(有时会提供帮助)运行它。氧气是一个很好的例子。
如果您使用的是Linux(KDE),则基于cscope实用程序构建的KScope。我曾经(并且一直在使用)最好的东西是钻研一些陌生的巨大代码,我必须对其进行某种修改,或者根据自己的需要使用哪个API。它的功能之一是交叉引用数据库,可以通过很多方式对其进行搜索:您可以找到符号的所有引用,符号的全局定义,查找函数的调用者/被调用者等等。它甚至具有内置的IDE和显示调用图的功能。
有一些工具可以使用,例如埃及http://www.gson.org/egypt/egypt.html,但前提是您与用于编译代码的预期GCC版本以及调用图生成器的确切版本相匹配。关于codeviz也可以这样说http://www.csn.ul.ie/~mel/projects/codeviz/
另一个选项是在cachegrind模式下使用的valgrind(它会生成一种可从kcachegrind程序中遵循的调用图类型。
我前一段时间使用Borland Together,它在通过代码生成模型方面做得不错。我相信它甚至可以从代码中生成序列图。请记住,如果您的代码混乱不堪,那么您的模型也将如此。而且我记得它并不便宜,但有时您可以享受特别优惠。
我尝试了一个名为Visustin的工具,该工具在图形上不是很好,但是可以做到:代码中的流程图。 http://www.aivosto.com/visustin.html