2011-09-17 9 views
6

私はwindbg for System.Guidオブジェクトで!を使用すると、そのGUIDオブジェクトのフィールドのリストを取得しました。このGUID(文字列表現)の値が何であるかをどのように確認できますか?Windbg - ダンピングSystem.Guid

答えて

8

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

+0

実際、私は64bitマシンでテストしているので、私の場合はdt nt!_GUID <@ofobject> +8はOKです。ありがとう。 – Mijalko

+0

管理デバッグをしてSOS経由でアドレスを取得すると、dt nt!_GUIDを実行すると正しい値が表示されます<@ofobject> –

+0

このオブジェクトが値タイプの場合。 dt nt!_guidを使用する<@ofobject> – fresky

0

Guidは、intおよびバイトとして格納されます。 ToString()を呼び出すと、文字列表現が作成されます。 'dead'ダンプファイルを解析すると、メソッドを呼び出すことはできません。だからあなたの最善の策は、単に新しいコンソールアプリやユニットテストで()の値をコピーして、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のダースを確認する必要がある場合は

+0

残念ながら...それは痛みを伴うだろう。 – Mijalko

+0

申し訳ありません。 WinDbgを頻繁に使用すると、単体テストがなく、そのデザインを改善する必要があることを示している可能性があります。私が提供した答えは、windbgとのセッション中にはうまくいきます。がんばろう。 – Dmitry

関連する問題