Author: Mario Hewardt
Publisher: Addison Wesley, 2009
Aimed at: Professional .NET developers
Pros: Highly informative and well explained
Cons: Material necessarily dense
Reviewed by: Mike James
Before you decide that using anything but the basic debugging facilities provided by Visual Studio is overkill and that you therefore don't need to read this book - think again. Even if you are not interested in advanced debugging this book contains a wealth of information on how .NET actually works at a very deep level. The reason is simply that to perform advanced debugging you need to understand a lot of low level ideas to make any sense of what the debugger is telling you.
The book starts off with a discussion of what tools are available - and if you thought that the interactive debugger provided with Visual Studio was the start and end of the matter then you will be surprised to discover just how many alternatives there are. From here we move on to basic debugging techniques - breakpoints, examining code and so on.
Part Two deals with some bigger topics such as how code is loaded, synchronisation and threading, garbage collection, and COM interop. This is so much more useful than just debugging and provides a deep look at how things actually work. Of course this is advanced and the material is very dense - don't expect to understand it or its implications in a single reading.
The final section is on advanced topics and for a book that starts out "advanced" this might sound scary. In fact it is more esoteric than advanced in that it covers postmortem debugging - which is not for everyone - and using PowerShell to control debugging tools. The book closes with a short chapter on .NET 4 and some of the interesting challenges it introduces.
Overall the style is good and the author is usually to the point. Occasionally you might find that you get lost because the author is trying to tell you too much or isn't clear why you need to know something - but keep reading it does eventually make sense.
The final verdict is that if you are a serious .NET programmer then you need this book.