Ответ
Для отладки protobuf-файлов можно использовать несколько подходов:
- Text Format - конвертировать бинарный protobuf в читаемый текст:
import "google.golang.org/protobuf/encoding/prototext"
text := prototext.Format(msg)
fmt.Println(text)
- JSON - преобразовать в JSON для удобного просмотра:
import "google.golang.org/protobuf/encoding/protojson"
jsonBytes, _ := protojson.Marshal(msg)
fmt.Println(string(jsonBytes))
- DebugString() - метод из пакета
proto(для v1 API):
import "github.com/golang/protobuf/proto"
fmt.Println(proto.MarshalTextString(msg))
- Wireshark/Protoc - для анализа сетевого трафика можно использовать:
protoc --decode_raw < binary.proto
Для сложных случаев полезно проверять валидность сообщений через proto.Unmarshal() и анализировать ошибки.