编辑:
我发现doxygen可以为类生成调用图,但我找不到任何选项或示例,其中为类的公共/私有成员(如字段,方法等)生成调用(er)图。 。?请参阅我在下面提供的示例。
是否可以使用某些IDE工具和代码编辑器在代码中找到2个变量/对象之间的链接/关系,即在Visual Studio,Sublime等中。
e.g。
a=func(b,c);
w=func(a,c);
此处w
和b
间接相互关联。
在复杂的代码中,手动查找此类关系非常困难。
我理解某些语言的反思和动态性质会限制这种分析。
答案 0 :(得分:1)
找到工具和比较列表:
https://github.com/OpenGrok/OpenGrok/wiki/Comparison-with-Similar-Tools
修改
可能在doxygen中,但仅适用于类及其关系
我找到了,这是VS Ultimate中的代码映射:
答案 1 :(得分:1)
您需要提供您要使用的语言。如果我猜测并说C / C ++,您通常可以使用CCTree和Cscope来实现此功能。大多数开源开发人员为此目的广泛使用Cscope。
Eclipse CDT也有call graph's。我知道,为了这个目的,在VisualStudio之外工作有点痛苦。但成本是使用开源的部分原因。
为了浏览目的,涵盖所有语言的最佳选择是Exuberant Ctags。这适用于相当数量的编辑和您列出的所有语言。有了这么大的语言和用例列表,可能值得花时间学习vim或emacs以及这里支持的集成。
对于Python,您还可以使用pyscope查看cscope。 Python的另一个很好的替代方案是Rope。 Rope支持将定义和用法作为其标准工具集的一部分。
大多数开发人员不需要CCTree,因为使用cscope浏览代码库相对简单。多年来,我在各种各样的语言中使用了丰富的ctags + emacs。学习需要一点时间,但好处是 它是免费的,便携的,功能强大的。对于某些目标语言,CCTree的另一种替代方法是codegraph。