btrace跟踪组数创建

之前有人问我怎么用btrace跟踪数组的创建,这里记录一下。

需要靠Kind.NEWARRAY,比如要跟踪int数组的创建可以这么写
@BTrace
public class BtraceCreateArray {

    @OnMethod(clazz = "/.*/", method = "/.*/", location = @Location(value = Kind.NEWARRAY, clazz = "int") )
    public static void findCreateIntArray() {
        println("----------------");
        jstack();
        println();
    }

}

这样就可以了,另外发现新版的btrace(我用的是1.3.7),用clazz = "/.*/"这种匹配方式,会导致1.8的jvm(1.8.0_101)进程crash,1.7是没这个问题的。需要将模式匹配改一下,比如改成clazz = "/.*Foo.*/",这样就好了。这个问题已经有人提交过了 https://github.com/btraceio/btrace/issues/240

猜你喜欢

转载自szhnet.iteye.com/blog/2324902