В btrace, как я могу напечатать байтовый массив в читаемом формате?

Я хочу использовать btrace чтобы проверить значение byte[] метода return используйте @Return аннотаций.

Массив байтов на самом деле является нормальной строкой, закодированной с использованием utf8.

Класс как ниже:

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

я пытался printArray, но он принимает только тип Objetc[], не работает для типа byte[]. За print, он просто выводит внутренний идентификатор объекта, например, "[B@4fbc7b65".

Есть ли другой способ решить проблему?

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));
  }
}
Другие вопросы по тегам