Существует ли визуализатор отладки Visual Studio для потока или массива байтов, содержащего полезную нагрузку protobuf?

Кто-нибудь знает визуализатор отладки VS для содержимого protobuf?


person mark    schedule 08.06.2011    source источник


Ответы (1)


Я, например, нет, хотя для wireshark существует, если это поможет.

У меня не было времени посмотреть на необходимый API расширения VS; также обратите внимание, что если у вас нет схемы (либо в виде .proto, либо через модель типа), формат внутренне неоднозначен - например, вариант может быть закодирован с дополнением до двух или зигзагом (без различия на проводе), или fixed32 может быть целым числом, числом с плавающей запятой и т. д. Строка может быть строкой UTF-8, упакованным массивом или вложенным сообщением. И так далее.

Если кто-то захочет реализовать это, ProtoReader уже предоставляет необходимый API для обработки основной кодировки — просто интерпретация этой кодировки действительно требует доступа к схеме. Плюс навыки визуализатора VS!

Могу ли я предложить, что (если вы не ожидаете, что сами необработанные данные повреждены), более простой вариант - десериализовать в объект и просмотреть объект в отладчике.

person Marc Gravell    schedule 08.06.2011
comment
Я пытаюсь понять, почему мои DTO не десериализуются, как я ожидаю. Это может быть либо сбой во время сериализации, либо во время десериализации. Если бы я мог убедиться, что определенные свойства находятся в потоке protobuf, я бы сделал вывод, что проблема связана с десериализацией. Вот почему я хотел иметь возможность визуализировать поток protobuf. Жизнеспособной альтернативой был бы подробный режим работы, при котором protobuf-net регистрирует все, что он сериализует. - person mark; 09.06.2011
comment
@mark - это звучит довольно агрессивно ... это можно сделать, но, может быть, было бы проще просто описать проблему? (для сравнения: я не ожидал, что XmlSerializer или DataContractSerializer будут такими болтливыми) - person Marc Gravell; 09.06.2011
comment
stackoverflow.com/questions/6285755/ - person mark; 09.06.2011