2009-06-16 15 views
6

Ich versuche, einige COM-Komponenten zu debuggen und CLSID und IIDs in Aufrufen von CoCreateInstance aufzuspüren.Kann ich GUID in windbg anzeigen?

Ich bin mir nicht sicher, wie man GUID in windbg anzeigt. Irgendwelche Hinweise dafür.

Antwort

6

Verwenden Sie die "Anzeigetyp" Befehl:

dt GUID [address-of-guid] 

Für weitere Informationen die documentation sehen.

Wenn es sich um eine lokale Variable handelt (lokal für den Stack-Frame, in dem Sie sich befinden), verwenden Sie dv /V, um alle lokalen Variablen auszugeben.

+1

Danke für den Zeiger, aber dieser Befehl muss etwas optimiert werden. Folgendes funktioniert: dt nt! _GUID address-of-guid. – anand

+0

Ja, wenn du es nicht nt sagst! Es wird alle geladenen Module durchsuchen, bis es gefunden wird. Und, ja, ich denke GUID wird zu _GUID. Guter Fang. –

0

Ich weiß nichts über COM, aber wenn dies nur eine normale Variable ist (auch wenn es ein globales ist), dann können Sie immer tun:

alt + 2, um das Überwachungsfenster zu bringen und geben Sie den Namen der variablen gibt, zB

blahblah.dll! guid

Hier finden Sie die Symbole dafür brauchen, müssen t möglicherweise in Quelle-Modus als gut sein. Das ist etwas schöner als dv/dt, da Sie es nicht ständig eingeben müssen. Sie können die Adresse auch eingeben, denke ich. Beachten Sie, dass wenn Sie nicht blahblah setzen! Dann kann es windbg gelegentlich für ein paar Sekunden zum Stillstand bringen, da es jedes Modul nach etwas namens Guid durchsucht.