Windbg - 转储 System.Guid

7
当我在windbg中使用!do命令查看System.Guid对象时,会得到该GUID对象的字段列表。如何查看该GUID的值(字符串表示形式)?
2个回答

9
使用dt nt!_GUID <@ofobject> +4

实际上,我正在64位机器上进行测试,所以在我的情况下,dt nt!_GUID <@ofobject> +8 是可以的。谢谢。 - Mijalko
当我进行托管调试并通过SOS获取地址时,当我执行dt nt!_GUID <@ofobject>时,正确的值会显示出来。 - Ganesh R.
如果此对象是值类型,请使用 dt nt!_guid <@ofobject>。 - fresky

0

Guid被存储为整数和字节。当您调用ToString()时,会创建字符串表示形式。如果您正在分析一个“死”转储文件,则无法调用方法。因此,最好的选择是只复制值并在新的控制台应用程序或单元测试中使用this constructor和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
)

可能不是你想要的答案。希望你只需要做一次。


不幸的是,如果你需要检查数十个GUID,那将会很痛苦。 - Mijalko
很抱歉听到这个消息。频繁使用WinDbg可能意味着您缺少单元测试并且需要改进设计。我提供的答案适用于偶尔使用windbg的情况。祝你好运。 - Dmitry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接