btrace使用step by step

第一步: 下载 地址

下载后解压缩,服务器空间,到D盘 D:\btrace目录下

第二步: path里面配置btrace

将D:\btrace\bin加到环境变量的path中

如果没有java_home还要配置JAVA_HOME

第三步: 测试代码示例

    a) 需要trace的java程序代码

package com.ddc.mem;public class CaseObject{sleepTotalTime=0;public boolean execute(int sleepTime) throws Exception{System.out.println(“sleep: “+sleepTime);sleepTotalTime+=sleepTime;Thread.sleep(sleepTime);if(sleepTime%2==0)return true;;}}

    b) 运行上述代码的main入口函数

package com.ddc.mem;import java.util.Random;public class CaseObjectMain {main(String[] args) throws Exception{Random random=new Random();CaseObject object=new CaseObject();while(true){boolean result=object.execute(random.nextInt(1000));Thread.sleep(1000);}}}

    c)btrace java脚本代码

com.sun.btrace.annotations.*;import static com.sun.btrace.BTraceUtils.*;@BTracepublic class TracingScript { @OnMethod(clazz=”com.ddc.mem.CaseObject”,method=”execute”,location=@Location(Kind.RETURN) )traceExecute(@Self com.ddc.mem.CaseObject object,int sleepTime, @Return boolean result){println(“调用堆栈!!”);println(strcat(“返回结果是:”,str(result)));jstack();println(strcat(“时间是:”,str(sleepTime)));}}

第四步: 编译运行需要trace的java代码

javac -d D:\ CaseObject.java

javac -d D:\ CaseObjectMain.java

java com.ddc.mem.CaseObjectMain

第五步: 跟踪CaseObject方法的执行情况

jps 得到java运行的pid

btrace -cp btrace/build;D:/ pid TracingScript.java

CaseObject的class文件是放在D:\目录下的,所以加了D:\

,香港空间,美国空间怎么能研究出炸药呢?爱迪生不经历上千次的来自失败,怎么能发明电灯呢

btrace使用step by step

相关文章:

你感兴趣的文章:

标签云: