Advanced Windows Debugging 1st Edition
|New from||Used from|
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.
Frequently bought together
Customers who viewed this item also viewed
From the Back Cover
-- Bob Wilton, Escalation Engineer, Critical Problem Resolution Team, Microsoft
“An excellent reference for both intermediate and advanced debuggers: highly practical, and filled with tricks and strategies. This book stands out from all other Win32 debugging literature, thanks to its in-depth examples–including resolving intricate problems like stack and heap corruptions.”
-- Kinshuman, Development Lead, Windows Core OS Division, Microsoft
The First In-Depth, Real-World, Insider’s Guide to Powerful Windows Debugging
For Windows developers, few tasks are more challenging than debugging–-or more crucial. Reliable and realistic information about Windows debugging has always been scarce. Now, with over 15 years of experience two of Microsoft’s system-level developers present a thorough and practical guide to Windows debugging ever written.
Mario Hewardt and Daniel Pravat cover debugging throughout the entire application lifecycle and show how to make the most of the tools currently available–-including Microsoft’s powerful native debuggers and third-party solutions.
To help you find real solutions fast, this book is organized around real-world debugging scenarios. Hewardt and Pravat use detailed code examples to illuminate the complex debugging challenges professional developers actually face. From core Windows operating system concepts to security, Windows® Vista™ and 64-bit debugging, they address emerging topics head-on–and nothing is ever oversimplified or glossed over!
This book enables you to
- Master today’s most powerful Windows debugging tools, including NTSD, CDB, WinDbg, KD, and ADPlus
- Debug code that wasn’t designed or written for easy debugging
- Understand debuggers “under the hood,” and manage symbols and sources efficiently
- Debug complex memory corruptions related to stacks and heaps
- Resolve complex security problems
- Debug across processes: identity tracking, RPC debugger extensions, and tracking IPCs with Ethereal
- Find and fix resource leaks, such as memory and handle leaks.
- Debug common thread synchronization problems
- Learn when and how to write custom debugger extensions
- Perform “postmortem debugging” using crash dumps and Windows Error Reporting
- Automate debugging with DebugDiag and the Analyze Debugger command
Whether you’re a system-level or application developer, Advanced Windows Debugging delivers the deep understanding of debugging that could save you weeks on your very next project.
Part I Overview
Chapter 1 Introduction to the Tools
Chapter 2 Introduction to the Debuggers
Chapter 3 Debugger Uncovered
Chapter 4 Managing Symbol and Source Files
Part II Applied Debugging
Chapter 5 Memory Corruptions Part I – Stacks
Chapter 6 Memory Corruptions Part I – Heaps
Chapter 7 Security
Chapter 8 Inter-process Communication
Chapter 9 Resource Leaks
Chapter 10 Synchronization
Part III Advanced Topics
Chapter 11 Writing Custom Debugger Extensions
Chapter 12 64-bit Debugging
Chapter 13 Postmortem Debugging
Chapter 14 Power Tools
Chapter 15 Windows Vista Fundamentals
Appendix A Application Verifier Test Settings
If you like Advanced Windows Debugging, keep an eye out for ADVANCED .NET DEBUGGING COMING IN NOV. 2009.
About the Author
Mario Hewardt is a senior design engineer with Microsoft, and has worked extensively in the Windows system level development area for the last nine years. He is currently involved with designing and implementing the next generation management protocol for Windows Longhorn.
Daniel Pravat is a senior design engineer with Microsoft and has worked in the Windows division, primarily within the Windows management area. He is currently leading a development team that has the responsibility of shipping the most reliable management platform for Windows Longhorn.
- Item Weight : 3.06 pounds
- Paperback : 840 pages
- ISBN-10 : 0321374460
- ISBN-13 : 978-0321374462
- Dimensions : 7.05 x 1.85 x 9.2 inches
- Publisher : Addison-Wesley Professional; 1st edition (October 29, 2007)
- Language: : English
- Best Sellers Rank: #790,698 in Books (See Top 100 in Books)
- Customer Reviews:
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The writing is dry and to the point but effective. I found the kernel dumps and the stack information to be time consuming and far too manual to be productive. I have found the people at Microsoft to be mired in this environment of command line investigation. They seem unable to creatively produce a tool to automate this process and produce a convenient process that is both effective and proper for programmers who aren't familiar with this intricate method of investigation.
However, it is good to know how much time and training the process requires to produce detailed results.
If you are trapped in the intricacies of debugging IPC, service errors, or long running problems this book may hold the answers. Otherwise, the answer to what you are looking to accomplish will be found in the standard debugging tools and error notification processes. Answer
Founder of DumpAnalysis Portal
Editor-in-Chief of Debugged! MZ/PE magazine
Beware, however. As others have noted, this is definitely an _advanced_ book. If you're not comfortable with arcane command syntax, bits and bytes, and such this will be painful to incomprehensible for you. On the other hand, I dare say you will never be a true Master Debugger until you have a good grasp of this material.
You would do well to start with Debugging Microsoft .NET 2.0 Applications or the now-unavailable Debugging Applications for Microsoft .NET and Microsoft Windows . Both will give you an easier introduction to WinDbg. The latter, older volume has much more information on native code debugging than the newer version. As they also cover the Visual Studio debugger in detail, most developers need go no further than one of these.
Note that WinDbg _can_ be used with SOS and ADPlus to do some pretty fancy .NET debugging that isn't possible with Visual Studio alone. For that matter, the .NET CLR on Windows is implemented using the same Windows API as any native application. I've seen WinDbg used to trace bugs through C# application code down to find that the defect was actually in the CLR or Windows itself. John Robbins (author of the previously mentioned books) states in Chapter 6 of the latest version that "in our consulting work at Wintellect, which as you know works on the toughest bugs, we use WinDBG nearly 70 percent of the time."
Don't ignore this book just because you program in .NET!
Watch out for the font used in the listings though. Not being a master myself, I've been stumped for quite a while because the letter 'l' looks like the number '1' in the font they use. (I've been assiduously following the examples line-by-line).
I also recall being stumped because of an error or two in the text, though I admit I can't find them now. These as you can imagine could be a serious problem given the arcane and undocumented nature of quite a bit of the material. Just make sure you check the errata periodically. Ironically, the errata web page for the book is not functioning at the moment...
Top reviews from other countries
I ordered this book for a completely other reasons than the one I use it for.
If like me you think that this is a software reverse-engineering book for binary code analysts with lot's of assembly language code then you'll be disappointed.
However if for once you adopt a programmer's point of view and want to know how things works from a low level point of view then you'll enjoy this book.
In short lots of c/c++ code, less binary code disassembly.
Software debuggen scheint für viele Entwickler etwas sehr selbstverständliches zu sein. Visual Studio hat man sowieso offen, also eben das Programm im Debugger starten, ein paar Breakpoints setzen und gucken, was passiert ... das reicht für viele Fehler tatsächlich. Und warum auch nicht, denn wenn es zum Debuggen irgendetwas zu wissen gäbe, hätte man es doch sicher mal im Studium behandelt - zumindest in meinem Studium hat man uns dazu aber nichts erzählt.
Aber wenn dann ein komplizierterer Defekt auftritt, dann stellt man fest, dass man die internen Prozesse doch nicht gut genug versteht, um zu wissen, wie man vorgehen sollte. Dieses Buch hilft, einen Teil dieser Bildungslücke zu schließen. Der andere Teil ist natürlich Erfahrung, die das Buch leider nicht ersetzen kann. Aber wenigstens sorgt es dafür, dass man nicht ratlos auf den Monitor starren muss in der Hoffnung, dass eine spontane Eingebung den Fehler identifiziert.
Ich habe mir das Buch sowohl privat als auch für die Firma direkt gekauft - so muss ich mein Buch zumindest nicht teilen.
Auch antworten die Autoren schnell und freundlich - auch wenn sie ein Problem von mir nicht lösen konnten.
Alles in allem: ein Muß für gute Entwickler (mit VC unter Windows, natürlich)