需要靠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