- Series: Developer Reference
- Paperback: 801 pages
- Publisher: Microsoft Press (April 2, 2003)
- Language: English
- ISBN-10: 0735615365
- ISBN-13: 978-0735615366
- Product Dimensions: 7.6 x 2.3 x 9.4 inches
- Shipping Weight: 3.9 pounds
- Average Customer Review: 12 customer reviews
- Amazon Best Sellers Rank: #2,135,146 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Debugging Applications for Microsoft® .NET and Microsoft Windows® (Developer Reference) Paperback – April 2, 2003
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Customers who bought this item also bought
What other items do customers buy after viewing this item?
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.
Top customer reviews
This book covers real-world debugging issues that plague programmers and are difficult to solve, such as multi-threading and memory issues amongst others. Also this book has several entertaining real-world scenarios that can help give you perspective on debugging.
However this book is not for the beginner, a solid grasp of programming is essential for this book. However those with a good grasp of what programming is about with at least a basic knowledge of .NET will be right at home with this book.
Although this is exceptionally good book, I wish it had more content for the specifics of .NET debugging. I think another missing topic is `debugging mixed managed and unmanaged code'.
After reading most of the book, I disliked only one thing, which is author's strong opinion about using exceptions in the applications.
Most useful to me were the symbol-server tips, the SuperAssert macro and seeing how it does it what it does, crash handling in general, and the author's insight into why certain things are so slow (like OutputDebugString).
This book does have a not-so-subtle anti-C++ bias, there are little digs at C++ coding techniques throughout the book, which seem a little antiquated and inappropriate in 2005.
In the chapter on the debug C-runtime, I'm really surprised the author does not suggest writing a leak-detection system that captures the callstack at the time of allocation, I've found the C-runtime's file-and-line-oriented leak report fairly useless since the allocation is often deep inside some container class, you really need to know what code caused the allocation, not what code actually did the allocation. And the recommended feature that walks the entire heap every N allocations is unusable (it's too slow) in a large C++ program which might have many thousands of allocations. Also, redefining C++ keywords as suggested seems so evil, there are better ways of doing this.
I believe Windows XP Service Pack 2 changed some Windows internals that affect crash handling/debugging/stack walking, I wouldn't mind seeing an updated volume that covers these changes in detail.
Overall though, an excellent book, the most useful debugging book I've found so far.
There are some topics missed. For example: not covered are debugging for CE or Windows Mobile, debugging using virtual machines (VMWare extensions for Visual Studio, etc.) or the shared sources available for ASP.NET or Windows CE. These are minor issues in an outstanding book on the subject.
A must have for every professional Windows developer.
Not just that it costs a lot less then what people ask for a copy of out of print "first edition", but also seeing the TOC told me that this book made not a small step forward - in particular by ditching that VB thing and opening the doors to windbg -- THE TOOL, if you don't have the money or reason for SoftICE.
Books covering hi-tech need rejuvenation every once in a while and the way John Robbins did it could actually serve as an example on how to do it right.
So, if I see the 3rd sequel this or next year I'm probably going to buy it too - if it gives windbg a 50-50 split with Visual Studio, and a chapter on kd maybe? :-)
As for a "a complete knowledge of the .NET framework debugging" - if you know how to anything under Visual Studio debugger you already know it - say you forget half of what this book is trying to teach you and you are still fine :-). Managed code is so shielded that there's nothing on earth new for debugging - unless you want to dig two levels bellow and go into JIT or PInvoke - in which case you are going to need this book.
Most recent customer reviews
This book is very enjoyable, well seasoned with humor, and definitely teaching a lot about debugging applications in...Read more