2011-09-17 29 views
6

Cuando uso! Do en windbg para el objeto System.Guid obtuve la lista de campos para ese objeto GUID. ¿Cómo puedo ver cuál es el valor de este GUID (representación de cadenas)?Windbg - dumping System.Guid

Respuesta

8

Uso dt nt!_GUID <@ofobject> +4

+0

En realidad, estoy probando en la máquina de 64 bits, así que en mi caso dt nt! _GUID <@ofobject> +8 está bien. Gracias. – Mijalko

+0

Para mí cuando realizo la depuración gestionada y obtengo la dirección a través de SOS, se muestra el valor correcto cuando lo hago dt nt! _GUID <@ofobject> –

+0

Si este objeto es un tipo de valor. Use dt nt! _guid <@ofobject> – fresky

0

Guid se almacena como bytes y bytes. La representación de cadenas se crea cuando llamas a ToString(). No puede llamar a métodos si analiza un archivo de volcado "muerto". Así que lo mejor es simplemente copiar los valores y el uso de this constructor y ToString() en una nueva aplicación de consola o en una unidad de prueba:

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

No es la respuesta que estaba buscando probablemente. Espero que solo necesites hacerlo una vez.

+0

desgracia ... Si es necesario comprobar docena de GUID será doloroso. – Mijalko

+0

Lamento escuchar eso. El uso frecuente de WinDbg puede indicar que faltan pruebas unitarias y que el diseño debe mejorarse. La respuesta que brindé es buena para la sesión 'de vez en cuando' con windbg. Buena suerte. – Dmitry