In the predecessor volume of Debugging Applications for Microsoft .NET and Microsoft Windows, which dealt with Visual Basic 6, John Robbins broke new ground by codifying the techniques and strategies involved in debugging Microsoft Windows applications. In this tremendously revised and much longer version (in keeping with Microsoft's substantial shift to the .NET architecture), Robbins achieves great progress in making a proper professional discipline out of debugging--and in showing how to design software to keep bugs from appearing in the first place.
The greatest value of Robbins' work is in his treatment of bugs' origins in flawed software design and their later manifestation in faulty coding practice. He explains in great detail, for example, how to use assertions (in concert with error handling) to keep bad data from getting into software modules and causing trouble. This coverage is why your development team should read this book before getting too far down the development path.
If you're already done with your software system and just can't make it work right (and, naturally, the Deadline of Death is looming), this book offers hope as well. Want to write a method that you invoke manually only when the program is at a breakpoint in the debugger? This book shows how. Need lots of details on how to add assembly-language code to your Visual C++ .NET software? You'll find them here. There's a lot of information about how debuggers do their work in general, too. To put it concisely, this book contains a career's worth of information on how to keep bugs to a minimum and track them down when they occur. --David Wall
Topics covered: How to design Microsoft Windows software to minimize design flaws, implement designs with as few software errors as possible, and use diagnostic tools and techniques to squash bugs that make it into your systems. All the latest Visual Studio .NET tools get attention, as do techniques for getting the most out of those tools. Specific coverage goes to strategies for fixing thread deadlock problems, resolving memory troubles, and reading Dr. Watson dumps.
About the Author
John Robbins is a co-founder of Wintellect, a .NET and Windows consulting and education firm. Wintellect's mission is to help companies ship better software faster using any Microsoft platform. He concentrates on the emergency debugging and consulting aspects of the business. John also teaches other developers how to better debug so they can solve their development problems faster with his course "Debugging Applications." John has worked on debugging or tuning a wide range of applications from companies such as eBay, Microsoft, and AutoDesk, as well as many corporate development shops. In addition to writing both editions of Debugging Applications, John is a contributing editor to MSDN Magazine where he writes the popular Bugslayer column. Before founding Wintellect, John was one of the first engineers at NuMega Technologies (now Compuware Corporation) where he was a key player in designing, developing and managing many of the most-used and award-winning developer tools in the C/C++, Microsoft Visual Basic, and Java marketplace. Prior to stumbling into software development in his late 20s, John was a paratrooper and Green Beret in the United States Army. Since he no longer gets the same adrenaline high that he used to jumping out of airplanes in the middle of the night onto an unlit, postage-stamp-size drop zone with a full combat load, he rides motorcycles at high rates of speed--much to his wife's chagrin.