3

BTrace を使用して、プログラムで特定の型が最初にインスタンス化されたときを見つけようとしています (Eclipse デバッガーはそれを見つけることができません)。作成されているはずです)。

とにかく、JVisualVM を介して使用している次の方法がありますが、実行時に何も表示されません。

import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
import java.lang.String;

@BTrace
public class ClassLoad {
    @OnMethod(clazz = "javolution.xml.stream.XMLStreamWriterImpl", method = "<init>", location = @Location(value=Kind.NEW))
    public static void site(@ProbeMethodName(fqn=true) String caller) {
        println(strcat("Called from @", caller));
    }
}
4

1 に答える 1

3

別の@OnMethod定義が必要です。

@OnMethod(clazz="/.*/", method="/.*/", location=@Location(value=Kind.NEW, clazz="javolution.xml.stream.XMLStreamWriterImpl"))

基本的に、新しい javolution.xml.stream.XMLStreamWriterImpl命令の出現について、すべてのクラスのすべてのメソッドを検査することを指定します。

コードの残りの部分は同じままでかまいません。

于 2013-02-13T13:59:48.087 に答える