JTracer是一个通过生成和可视化调用图来理解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);
}
}