如何使用 JDT 构建调用图
How to build call graph using JDT
在eclipse中,有"Call Hierarchy"可以轻松找到调用图(或方法调用关系)。
我想找到一些 API 来提取这种关系。但是我找不到任何现有的教程来帮助我。谁能给我一些线索?主要想知道JDT中应该用哪个class,输入应该是什么
顺便说一句,目标是提取此调用关系,因此其他一些方法也可能有所帮助。我试过 SOOT,但我认为 JDT 更好,因为它既有调用者也有被调用者。
我通过查看 JDT 代码来了解这些功能,这是找到这些东西的好地方。
基本上您可以从以下代码片段开始:
CallHierarchy callHierarchy = CallHierarchy.getDefault();
IMember[] members = { method };
MethodWrapper[] callers = callHierarchy.getCallerRoots(members);
其中 method
是来自 JDT 的 IMethod 类型。
使用生成的 MethodWrappers,您可以获得有关它的所有信息。
重要的是要注意 class CallHierarchy 是内部的,因此它可以在 Eclipse 版本中中断,但我不知道 public API。
在eclipse中,有"Call Hierarchy"可以轻松找到调用图(或方法调用关系)。 我想找到一些 API 来提取这种关系。但是我找不到任何现有的教程来帮助我。谁能给我一些线索?主要想知道JDT中应该用哪个class,输入应该是什么
顺便说一句,目标是提取此调用关系,因此其他一些方法也可能有所帮助。我试过 SOOT,但我认为 JDT 更好,因为它既有调用者也有被调用者。
我通过查看 JDT 代码来了解这些功能,这是找到这些东西的好地方。
基本上您可以从以下代码片段开始:
CallHierarchy callHierarchy = CallHierarchy.getDefault();
IMember[] members = { method };
MethodWrapper[] callers = callHierarchy.getCallerRoots(members);
其中 method
是来自 JDT 的 IMethod 类型。
使用生成的 MethodWrappers,您可以获得有关它的所有信息。
重要的是要注意 class CallHierarchy 是内部的,因此它可以在 Eclipse 版本中中断,但我不知道 public API。