Buchempfehlung: Advanced .NET Debugging

"Ein guter Programmierer braucht keinen Debugger". Stimmt, aber leider sind nicht alle Programmierer gut... ;-)

Scherz beiseite: hier geht es nicht um Allerwelts-Debugging, wie es jeder schonmal in VisualStudio ausprobiert hat. Mario Hewardt beschreibt in seinem Buch außergewöhnlich tiefgehende Techniken, mit denen man quasi in den Eingeweiden von .Net herumwühlen kann.

Neben einer kurzen Übersicht über die für Windows frei zur Verfügung stehenden Debugging-Tools wie WinDbg, NTSD und CDB widmet sich Mario Hewardt einigen grundlegenden Eigenschaften der CLR wie z.B. dem Assembly-Loader und dem Konzept der unterschiedlichen Application-Domains zu.

An vielen einfachen Beispiel-Programmen (Binaries!) wird dann asuführlich gezeigt, wie man mithilfe von SOS und SOSEX den kompletten Managed-Heap inspizieren kann und wie die Garbage-Collection des Heaps funktioniert.

Es wird dann ein tiefer Einblick in die Funktionsweise der .Net Synchronisierung beim Threading gegeben: erläutert werden sowohl der Object-Header, der Sync-Block als auch der Thin-Lock. Anhand einiger einfacher Beispiele werden Deadlocks erzeugt und im Debugger aufgelöst.

Ein weiteres Kapitel beschreibt das Post-Mortem Debugging von Dump-Files und die Möglichkeiten, die die Windows-Error-Reporting-Architektur einem Software-Herstellen bieten können.

Zum Abschluss des Buches gibt Mario Hewardt noch einen kurzen Ausblick auf die neuen Features bzgl. des Debuggeings von .NET 4.0.

Mein Fazit: für den Standard-Programmierer ist dieses Buch nicht unbedingt von Nutzen. Wer aber mal eine hängende ASP.NET Anwendung in einem IIS im Produktions-Betrieb fixen muss und dabei wirklich verstehen will, was die CLR hinter den Kulissen treibt, sollte unbedingt dieses Buch gelesen haben. Ich jedenfalls hab dieses Buch verschlungen!

Erschienen bei Addison-Wesley, ISBN 978-0-321-57889-1