3

我想生成一个简单的调用图,以便能够分析 java 中方法的执行流程。

例如,如果在代码中我能够在多个方法调用中从方法 X 转到方法 Y,那么我想生成调用图,显示从方法 X 到方法 Y 的流程。

我尝试使用 SOOT 但是我没有设法获得这个所需的调用图。有谁知道我可以用来生成此类调用图的 API?我正在使用 Eclipse,但是我不能使用插件,因为需要在多个项目中使用这个工具

非常感谢你的帮助

4

4 回答 4

3

正如我所见,这是一个很好的 API:

https://github.com/gousiosg/java-callgraph

于 2012-06-06T19:23:21.720 回答
3

我最近一直在研究哪些静态分析库可用于 Java。以下是我遇到的一些:

  • Chord:似乎是一个仍在维护/更新的强大框架。这是一些关于他们预定义分析的文档的链接(包括调用图的东西)。
  • DepFinder:这个工具用于从项目中生成依赖图,我想你可以从中提取静态调用图信息。
于 2012-02-18T16:23:42.693 回答
0

JTracer是一个通过生成和可视化调用图来理解 Java 程序执行流程的工具。记录和可视化各种事件,如方法进入和方法退出。无需修改代码。

于 2012-06-16T21:52:33.557 回答
0

您可以在 Y 中抛出一个在 X 中捕获的异常,然后分析异常堆栈跟踪

// in X: 
try {
   do your calls ...
} catch (Exception e )  {
     StackTraceElement[] elements =  e.getStackTrace();
     for (StackTraceElement e : elements ) {
       // ... evaluate / print ...
       System.out.println(e);
     }
}
于 2012-02-15T09:55:57.017 回答