Heap-Corruption mittels „gflags“ untersuchen

Heap-Corruption-Fehler (Buffer-Overruns, Double-Frees, …) sind naturgemäß sehr schwer zu debuggen, da der eigentliche Fehler i.d.R. lange vor dem tatsächlichen Programmabsturz stattgefunden hat. Windows bietet für diesen Fall jedoch eine Hilfestellung an, sofern man das Programm „gflags“ aus den „Debugging Tools“ installiert hat:

gflags.exe -p /enable binary.exe [/full]

Das Programm binary.exe wird von nun an in einem Modus ausgeführt, bei dem jede unerwünschte Veränderung des Heaps sofort zu einem Absturz führt. Dadurch kann man der Ursache per Debugger oder Dump-Analyse deutlich schneller auf den Grund gehen.

Der Speicherverbrauch ist in diesem Modus etwas höher und die Arbeitsgeschwindigkeit etwas geringer. Beendet wird dieser Modus wieder mit folgendem Befehl:

gflags.exe -p /disable binary.exe