在代码中的 2 variables/objects 之间找到 links/relationships

Find links/relationships between 2 variables/objects in the code

编辑:


我发现 doxygen 可以为 classes 生成调用图,但是我找不到为 public/private 的 public/private 成员生成调用图的任何选项或示例35=](es) 比如字段、方法等?请参阅我在下面提供的示例。


是否可以使用一些 IDE 工具和代码编辑器在代码中找到 2 variables/objects 之间的 links/relationships,即 Visual Studio、Sublime 等

例如

a=func(b,c);
w=func(a,c);

这里wb是间接相关的

在复杂的代码中,很难手动找到这样的关系。

我了解某些语言的反射和动态特性会限制此类分析。

找到工具列表和对比:

https://github.com/OpenGrok/OpenGrok/wiki/Comparison-with-Similar-Tools

编辑


可能在 doxygen 中,但仅适用于 类 及其关系


找到了,这是VS Ultimate中的代码图:

http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/announcing-visual-studio-2015-preview-availability.aspx

您需要提供您要使用的语言。如果我猜测并说 C/C++ 您通常可以使用 CCTree and Cscope 来实现此功能。大多数开源开发人员为此广泛使用 Cscope。

Eclipse CDT 也有 call graph's。我知道为此目的在 VisualStudio 之外工作有点痛苦。但成本是改用开源的部分原因。

为了浏览目的覆盖所有语言的最佳选择是 Exuberant Ctags。这适用于相当多的编辑器和您列出的所有语言。有了如此庞大的语言和用例列表,您可能值得花时间学习 vim 或 emacs 以及此处支持的集成。

对于Python你也可以看看pyscope with cscope. Another excellent alternative for Python is Rope。 Rope 支持将查找定义和用法作为其标准工具集的一部分。

大多数开发人员不需要 CCTree,因为使用 cscope 浏览代码库相对简单。多年来,我在多种语言上使用了 exuberant ctags + emacs。学习需要一点时间,但好处是 它免费、便携且功能强大。 CCTree 的另一种替代方法是 codegraph 用于某些目标语言。