3

所以我向 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 运行它。

有什么想法我可能会错过吗?谢谢!

更新:打开调试模式,发现它挂在“调试:检查端口可用性:2020”。有任何想法吗 ?

4

1 回答 1

5

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

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

于 2015-08-10T16:03:50.397 回答