“Who says you can’t bottle experience? Between these covers is a wealth of information: a clear, logical approach to finding and eliminating bugs. This is an absolute must-have book for anyone who develops, tests, or supports software for Microsoft Windows.”
-- 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
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.