1

我想使用注释btrace来检查方法返回的 byte[] 值。@Return

字节数组实际上是使用 utf8 编码的普通字符串。

类如下:

Class A {
  byte[] method1() {
    ...
  }
}

我试过printArray了,但它只接受 Objetc[] 类型,不适用于 byte[] 类型。对于print,它只输出内部对象 id,如 '[B@4fbc7b65'。

有没有其他方法可以解决问题?

4

1 回答 1

1

是的,这是 BTrace 中的一个遗漏(https://github.com/btraceio/btrace/issues/322

现在,使用“信任”模式,安全检查将被关闭,你可以这样做。

@BTrace(trusted = true)
public class TrustedTrace {
  @OnMethod(clazz = "MyClass", method = "m", location = Location(Kind.RETURN))
  public static void intercept(@Return byte[] data) {
    println(Arrays.toString(data));
  }
}
于 2018-03-20T06:34:41.060 回答