WinDbg Cheatsheet
Für das Debuggen auf Geräten die kein Visual Studio besitzen und Remote nicht erreichbar sind, oder um Treiber zu debuggen ist es sinnvoll hin und wieder den WinDbg zu benutzen.
Hier ein kleiner Ausschnitt über die für mich wichtigsten Befehle.
Symbolpfade
Zum anzeigen der aktuell geladenen Symbolpfade kann folgendes ausgeführt werden
.sympath
Um einen eigenen Symbolpfad hinzuzufügen:
.sympath C:\PDBsCache;srv*C:\PDBsCache
Breakpoints
Hier einige Beispiele rund um Breakpoints.
Setzen von allen Breakpoints mit bestimmten Prefix
Objektorientierung setze ich gerne auch bei Treibern ein und für eine bessere Lesbarkeit, werden alle Funktionen eines Moduls mit einem Bestimmten Prefix beginnen: z.B. Module_Init(); Module_Deinit();
Wenn man beim Debuggen jeden Funktionsaufruf mitbekommen will, könnte man in jede funktion einen Breakpoint setzen, oder man lässt den Debugger einfach alle Funktionen mit bestimmtem Prefix breaken:
bm Driver.sys!Module_*
Ignoriere Breakpoints
Nützlich wenn andere Treiber oder Applikationen durchgehend Fehler bringen, kann man diese so ignoriergen:
* Ignoriere breapoint exceptions 0x80000003
sxn bpe
Rückgängig kann das dadurch gemacht werden:
sxe bpe
DebugPrints
Um Debug ausgaben zu erhöhen, z.B. Auch Info Level muss in folgenden Key ( erstellen wenn noch nicht vorhanden ):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
Der Wert mit dem Name "DEFAULT" und "8" als DWORD gesetzt werden. Oder über die Komandozeile:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter" /v DEFAULT /t REG_DWORD /d 8 /f
Sonstige
Beispiele die sich nur schlecht Kategorisieren lassen.
Kommentare
Wie in einigen Beispielen hier, ist es möglich auch Kommentarzeilen zu setzen. Dies geschieht mit einem Asterisk (*)
* Ignorierter Kommentar