VisualVM + BTrace
VisualVM下载地址:http://visualvm.github.io/download.html
解压后打开bin目录下的visualvm.exe
选择Tool-->Plugins,选择插件安装
测试代码
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BTraceTest { public int add(int a,int b){ return a+b; } public static void main(String[] args) throws IOException { BTraceTest test=new BTraceTest(); BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); for(int i=0;i<10;i++){ reader.readLine(); int a=(int) Math.round(Math.random()*1000); int b=(int)Math.round(Math.random()*1000); System.out.println(test.add(a,b)); } } }
运行测试代码,在visualVM中右键选择应用-->Trace Application
即可出现Btrace窗口
在这里可以编辑代码
public class TracingScript { /* put your code here */ @OnMethod( clazz="BTraceTest", method="add", location=@Location(Kind.RETURN)) public static void func(@Self BTraceTest instance,int a,int b,@Return int result){ println("调用堆栈:"); jstack(); println(strcat("方法参数A:",str(a))); println(strcat("方法参数B:",str(b))); println(strcat("方法结果:",str(result))); } }
点击Start即可开启
返回BTraceTest输入回车,观察两边的控制台信息