Archiv nach Schlagworten: Debug

Heap Error finden mit GFlags – Debug

Beim Entwickeln kann es schnell mal sein, dass ein Buffer ungewollt über den allokierten Bereich überschrieben wird. Um einen Fehler dieser Art zu finden, bieten sich Tools von Mircosoft an:

https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

Hat man die Tools installiert geht man mit der Konsole an folgend Ort:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x86

dort ruft man
gflags.exe /p
auf, um zu sehen welche Programme (Binaries) gerade überwacht werden.

Als nächsten Schritt müssen wir unser Programm einfügen (mit absolutem Pfad), PATH ist zu ersetzen
gflags.exe /p /full /enable PATH

Jetzt starten wir die Debug-Gui aus dem gleichen Ordner (C:\Program Files (x86)\Windows Kits\10\Debuggers\x86) mit dem Namen
windbg.exe
Ist das Programm gestartet kann man entweder einen laufenden Prozess (nicht aus anderer Debugging-Umgebung, sondern direkt gestartet) auswählen oder den Prozess direkt mit dem Windows Debugger starten.
Für den zweiten Fall kann die Session mit F5 gestartet werden.

Sobald der Heap-Error auftritt wird der entsprechende Code im Debugger angezeigt und die betroffene Zeile markiert.

Zum Schluss sollte die Überwachung wieder beendet werden, dies geschieht mit
gflags.exe /p /full /disable EXECUTEABLE
wobei hier nur der EXECUTEABLE Name angegeben werden muss und nicht der komplette Pfad

Quellen

https://blog.kowalczyk.info/article/1j9/gflags-a-debugging-story.html
https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)