This review is for: Advanced .NET Debugging (Paperback) by Mario Hewardt.
If you program for the .NET framework you need this book. It helps to take your debugging skills (as well as understanding of the platform) to the next level. How many times in the past have we tried to nail down a particularly tricky bug, and after hours (or days) of pulling at your hair, given up in despair and doubted our worth as a good programmer ? Well, if you have trodden down that path, then I am sure this book will help. I wish to warn you that this is not a book for a beginner nor for the faint-hearted. It will show you the tools, it will show you the way, but you will have to walk that path which begins by buying this book and reading it.
If you already have Advanced Windows Debugging by the same author and have read it, then you should be in good shape to tackle this one. But if you haven’t, fear not, you can still make it.
The book is soft-bound, neatly printed in about 500 pages and contains 10 chapters divided into 3 parts. It doesn’t weight much and can be easily carried around.
Part 1 consists of 3 chapters. In the first chapter the reader is an introduction to the tools. The 2nd chapter – CLR fundamentals – contrary to its name, is not a high level overview for the newbie. Instead it is a wealth of information for all .NET programmers. No matter how senior a programmer you are, I will bet that you will still learn something (probably a lot) from this chapter. The 3rd chapter – Basic Debugging Tasks – is a bit lengthy (I don’t mean that in a bad way) at about 100 pages, helps you get acquainted with the tools and commands.
Part 2 consists of 4 chapters – Assembly Loader, Managed Heap and Garbage Collection, Synchronization and Interoperability. As you might guess from the names, it is pretty advanced. It is hard, but you will emerge with a much better and clearer understanding of the platform. The chapter on interoperability might not be useful for everybody, but for those who have felt the pain of COM interop or PInvoke this chapter pays for the price of the book many times over.
Part 3 consists of the advanced-advanced topics. There is a chapter named Postmortem debugging which includes debugging problems when you have no access to the live machine and you cannot reproduce the problem locally. It consists of taking a dump file and analyzing it off-site. Not an everyday topic for most programmers, but you will surely be thankful for this chapter if you ever come across it. It also explains how the Windows error reporting works. The second last chapter is called PowerTools which includes discussion of PowerDbg which allows you to control native debuggers using powershell (how cool is that !). There is also information on Visual Studio integration with SOS and on CLR Profiler. The last chapter, a small one at about 15 pages, is on .NET 4.0 (based on Beta 1 release though).
The writing style is very clear and precise. There are plenty of samples and some good diagrams to help your understand the concepts better (i loved them, a picture is worth a thousand words). In short, this is book worth purchasing and worth reading and worth reading again (which is what I am going to do).
There is a support website for the book here.
