HomeBlogMagic

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 
Permalink: https://adirmeier.de/Blog/ID_152
Tags: Blog, WinDb, Windowsvon am 2017-08-03