如何生成Java调用图,基于Eclipse的解决方案

2022-09-03 09:33:56

我想分析和理解某个Java应用程序,我认为调用图将非常有用。如何生成一个?我正在使用Eclipse。


答案 1

获取调用堆栈

1)如果可以调试应用程序,只需放置一个断点(双击代码的左边距)并等待它停止。转到“调试透视图”(如果不存在),然后打开“调用堆栈视图/面板”。它具有调用堆栈:)

2) 如果要在某个位置打印此堆栈跟踪,请使用异常:

Exception aux = new Exception("I'm here"); // not for throwing!
aux.printStackTrace(); // if you want it in stdout

Exception aux = new Exception("I'm here"); // not for throwing!
StringWriter sw = new StringWriter();
aux.printStackTrace(new PrintWriter(sw));
String result = sw.toString(); // if you want it in a string

获取方法引用

可以通过右键单击“引用”、“工作区”来获取对方法的所有引用。它将搜索当前打开的项目中的所有调用。非常非常有用。

分析应用

(感谢那些回答了分析器选项的人)

Eclipse TPTP 提供分析:

http://www.eclipse.org/tptp/home/project_info/general/whatisTPTP.php


答案 2

我遇到了完全相同的问题,所以我编写了java-callgraph工具套件。使用它,您可以创建动态(运行时)调用图和静态调用图,前提是您拥有程序及其依赖项的jar文件。


推荐