之前有人问我怎么用btrace跟踪数组的创建,这里记录一下。
需要靠Kind.NEWARRAY,比如要跟踪int数组的创建可以这么写
这样就可以了,另外发现新版的btrace(我用的是1.3.7),用clazz = "/.*/"这种匹配方式,会导致1.8的jvm(1.8.0_101)进程crash,1.7是没这个问题的。需要将模式匹配改一下,比如改成clazz = "/.*Foo.*/",这样就好了。这个问题已经有人提交过了[url]https://github.com/btraceio/btrace/issues/240[/url]
需要靠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.*/",这样就好了。这个问题已经有人提交过了[url]https://github.com/btraceio/btrace/issues/240[/url]