Windbg — сброс System.Guid

Когда я использую !do в windbg для объекта System.Guid, я получаю список полей для этого объекта GUID. Как я могу увидеть значение этого GUID (строковое представление)?


person Mijalko    schedule 17.09.2011    source источник


Ответы (2)


Используйте 1_

person plodoc    schedule 19.09.2011
comment
На самом деле, я тестирую на 64-битной машине, поэтому в моем случае dt nt!_GUID ‹@ofobject› +8 в порядке. Спасибо. - person Mijalko; 28.09.2011
comment
Для меня, когда я выполняю управляемую отладку и получаю адрес через SOS, правильное значение отображается, когда я делаю dt nt!_GUID ‹@ofobject› - person Ganesh R.; 05.05.2014
comment
Если этот объект является типом значения. Используйте dt nt!_guid ‹@ofobject› - person fresky; 03.06.2014

Guid хранится в виде целых чисел и байтов. Строковое представление создается при вызове ToString(). Вы не можете вызывать методы, если анализируете «мертвый» файл дампа. Поэтому лучше всего просто скопировать значения и использовать этот конструктор и ToString() в новом консольном приложении или в модульном тесте:

public Guid(
    uint a,
    ushort b,
    ushort c,
    byte d,
    byte e,
    byte f,
    byte g,
    byte h,
    byte i,
    byte j,
    byte k
)

Не тот ответ, который вы искали, вероятно. Надеюсь, вам нужно сделать это только один раз.

person Dmitry    schedule 17.09.2011
comment
К сожалению... Если вам нужно проверить дюжину GUID, это будет болезненно. - person Mijalko; 18.09.2011
comment
Жаль это слышать. Частое использование WinDbg может указывать на отсутствие модульных тестов и необходимость улучшения дизайна. Ответ, который я дал, хорош для сеанса «время от времени» с windbg. Удачи. - person Dmitry; 18.09.2011