| List of Sidebars | |
| Acknowledgments | |
| Introduction | |
| Pt. I | The Gestalt of Debugging | |
| 1 | Bugs: Where They Come From and How You Solve Them | 3 |
| 2 | Getting Started Debugging | 33 |
| 3 | Debugging During Coding | 83 |
| Pt. II | Power Debugging | |
| 4 | Operating System Debugging Support and How Win32 Debuggers Work | 157 |
| 5 | Advanced Debugger Usage with Visual Studio .NET | 213 |
| 6 | Advanced .NET Debugging with Visual Studio .NET | 235 |
| 7 | Advanced Native Code Techniques with Visual Studio .NET | 269 |
| 8 | Advanced Native Code Techniques with WinDBG | 353 |
| Pt. III | Power Tools and Techniques for .NET | |
| 9 | Extending the Visual Studio .NET IDE | 407 |
| 10 | Managed Exception Monitoring | 455 |
| 11 | Flow Tracing | 479 |
| Pt. IV | Power Tools and Techniques for Native Code | |
| 12 | Finding Source and Line Information with Just a Crash Address | 491 |
| 13 | Crash Handlers | 513 |
| 14 | Debugging Windows Services and DLLs That Load into Services | 565 |
| 15 | Multithreaded Deadlocks | 581 |
| 16 | Automated Testing | 627 |
| 17 | The Debug C Run-Time Library and Memory Management | 667 |
| 18 | FastTrace: A High-Performance Tracing Tool for Server Applications | 717 |
| 19 | Smoothing the Working Set | 723 |
| Pt. V | Appendixes | |
| App. A | Reading Dr. Watson Logs | 751 |
| App. B | Resources for .NET and Windows Developers | 761 |
| Index | 771 |