2009-06-16 9 views
6

Estoy tratando de depurar algunos componentes COM y quiero rastrear CLSID e IID en llamadas a CoCreateInstance.¿Puedo mostrar GUID en windbg?

No estoy seguro de cómo mostrar GUID en windbg. Cualquier puntero para eso.

Respuesta

6

Utilice el comando "Tipo de visualización":

dt GUID [address-of-guid] 

Para más información ver el documentation.

Si está en una variable local (local en el marco de la pila en el que se encuentra), use dv /V para volcar todas las variables locales.

+1

Gracias por el puntero, pero este comando debe modificarse un poco. A continuación funcionará dt nt! _GUID address-of-guid. – anand

+0

Sí, si no lo dice nt! buscará todos los módulos cargados hasta que lo encuentre. Y, sí, supongo que GUID se convierte en _GUID. Buena atrapada. –

0

no sé nada acerca de COM, pero si esto es sólo una variable normal (incluso si es un problema mundial), entonces siempre se puede hacer:

alt + 2 para que aparezca la ventana de inspección y introduzca el nombre de la variable existe, por ejemplo

blahblah.dll! GUID

tendrá los símbolos para que, posiblemente necesitan t ser aswell en modo de fuente. Esto es un poco mejor que dv/dt ya que no tiene que escribirlo constantemente. También puedes ingresar la dirección, creo. Tenga en cuenta que si no pone blahblah! luego ocasionalmente puede hacer que windbg se bloquee durante unos segundos mientras busca en cada módulo algo llamado guid.