如何在Java中创建一个简单的静态调用图



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

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

我尝试使用SOOT,但是我没能得到这个必需的调用图。有人知道我可以用来生成这样的调用图的API吗?我正在使用Eclipse,但我不能使用插件,因为这个工具需要在许多项目中使用

非常感谢您的帮助

这是我所看到的最好的API:

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

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

  • Chord:似乎是一个仍在维护/更新中的健壮框架。这里有一个链接,指向一些关于预定义分析的文档(包括调用图的内容)
  • DepFinder:这个工具用于从项目中生成依赖关系图,我想你可以从中提取静态调用图信息

您可以在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);
     }
}
JTracer是一个通过生成和可视化调用图来理解Java程序执行流的工具。方法进入和方法退出等各种事件都会被记录和可视化。无需修改代码。

相关内容

  • 没有找到相关文章

最新更新