Btrace 不返回任何东西

Btrace not returning Anything

所以我正在向自己介绍 btrace,但目前我没有从中得到任何输出。使用此脚本:

包 com.sun.btrace.samples;

import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;

@BTrace
public class AllLines {
@OnMethod(
    clazz="/.*/",
    location=@Location(value=Kind.LINE, line=-1)
)
public static void online(@ProbeClassName String pcn, @ProbeMethodName String pmn, int line) {
    print(Strings.strcat(pcn, "."));
    print(Strings.strcat(pmn, ":"));
    println(line);
 } 
}

这直接来自样本目录,只是更改了 "clazz="/.*/"," 出于绝望,想要打印出一些东西。运气不好。

我指向 btrace 的 pid 是一个简单的 java 程序,我开发它只是为了测试目的,它在循环中调用某个方法。我是运行通过Eclipse吧。

有什么我可能遗漏的想法吗? 谢谢!

更新:打开调试模式发现它挂在 "debug: checking port availability: 2020 "。有什么想法吗?

您尝试跟踪的 classes 是否使用 javac -g 或至少 javac -g:lines 编译?您需要这样做才能访问字节码中的行号信息。

此外 - 为所有 classes 的所有方法启用线跟踪确实是一个 坏主意 (tm)。您将导致大量 class 重新转换和重新加载,如果运气不好,您可能会关闭您的应用程序(由于内存问题)。