Btrace使用

前阵子排查一个OOM 的问题,刚好和hsf有点关系,于是找毕玄帮忙查找问题,看看hsf 的代码,看到毕玄在用Btrace来跟踪方法的调用,觉得此法还是不错滴,以前都是人肉看现象推测,汗,再次记录下。

http://blog.bluedavy.com/?p=185  这个是毕玄记录的BTrace使用,可以参考下。

 

BTrace is a safe, dynamic tracing tool for Java. BTrace works by dynamically (bytecode) instrumenting classes of a running Java program. BTrace inserts tracing actions into the classes of a running Java program and hotswaps the traced program classes.

 

BTrace 可以在不改代码、不重启应用的情况下,动态的查看程序运行细节的工具,可以蛮方便食用的。

其官方网站在此:http://kenai.com/projects/btrace/

具体的实施操作细则可以参考:

http://kenai.com/projects/btrace/pages/UserGuide

 

 

下面是摘抄的写一个BTrace类的主意事项:

 

a BTrace class

  • can not create new objects.
  • can not create new arrays.
  • can not throw exceptions.
  • can not catch exceptions.
  • can not make arbitrary instance or static method calls - only the public static methods of com.sun.btrace.BTraceUtils class or methods declared in the same program may be called from a BTrace program.
  • (pre 1.2) can not have instance fields and methods. Only static public void returning methods are allowed for a BTrace class. And all fields have to be static.
  • can not assign to static or instance fields of target program's classes and objects. But, BTrace class can assign to it's own static fields ("trace state" can be mutated).
  • can not have outer, inner, nested or local classes.
  • can not have synchronized blocks or synchronized methods.
  • can not have loops (for, while, do..while)
  • can not extend arbitrary class (super class has to be java.lang.Object)
  • can not implement interfaces.
  • can not contains assert statements.
  • can not use class literals.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值