В 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));
}
}