用btrace打印package下抛出异常类和方法
import static com.sun.btrace.BTraceUtils.*;
import com.sun.btrace.annotations.*;
import java.util.Set;
import com.sun.btrace.AnyType;
@BTrace public class OnException {
@OnMethod(
clazz="/com\\.benni\\..+/",
method="remoteCall",
location=@Location(Kind.THROW)
)
public static void getException(@ProbeClassName String probeClass, @ProbeMethodName String probeMethod) {
print(Strings.strcat("entered ", probeClass));
println(Strings.strcat(".", probeMethod));
}
}
用btrace打印某方法当然入参和返回值。
import static com.sun.btrace.BTraceUtils.*;
import com.sun.btrace.annotations.*;
import java.util.Set;
import com.sun.btrace.AnyType;
@BTrace public class GetDsNames {
@OnMethod(
clazz="com.benni.EngineBO",
method="getDsNames"
)
public static void defineclass(@ProbeClassName String pcn, @ProbeMethodName String pmn,AnyType[] args) {
printArray(args);
}
@OnMethod(
clazz="com.benni.EngineBO",
method="getDsNames",
location=@Location(Kind.RETURN)
)
public static void getReturn(@Return Set<String> dsNames) {
println(Strings.strcat("loaded ", str(dsNames)));
}
}