Advanced Windows Debugging
Contents
Foreword
Preface
Acknowledgements
About the Authors
PART I: OVERVIEW
Chapter 1: Introduction to the Tools
Leak Diagnosis Tool
Debugging Tools for Windows
UMDH
Microsoft Application Verifier
Global Flags
Process Explorer
Windows Driver Kits
Ethereal
DebugDiag
Summary
Chapter 2 Introduction to the Debuggers
Debugger Basics
Basic Debugger Tasks
Remote Debugging
Debugging Scenarios
Summary
Chapter 3 Debuggers Uncovered
User Mode Debugger Internals
Controlling the Target
Summary
Chapter 4: Managing Symbol and Source Files
Managing the Symbols for Debugging
Managing Source Files for Debugging
Summary
PART II: APPLIED DEBUGGING
Chapter 5: Memory Corruption Part I—Stacks
Memory Corruption Detection Process
Stack Corruptions
Summary
Chapter 6: Memory Corruption Part II—Heaps
What Is a Heap?
Heap Corruptions
Summary
Chapter 7: Security
Windows Security Overview
Source of Security Information
How Is the Security Check Performed?
Identity Propagation in Client-Server Applications
Security Checks at System Boundaries
Investigating Security Failures
Summary
Chapter 8: Interprocess Communication
Communication Mechanisms
Troubleshooting Local Communication
Troubleshooting Remote Communication
Additional Technical Information
Summary
Chapter 9: Resource Leaks
What Is a Resource?
High-Level Process
Reproducibility of Resource Leaks
Handle Leaks
Memory Leaks
Summary
Chapter 10: Synchronization
Synchronization Basics
High-Level Process
Synchronization Scenarios
Summary
PART III: ADVANCED TOPICS
Chapter 11: Writing Custom Debugger Extensions
Introduction to Debugger Extensions
Example Debugger Extension
Summary
Chapter 12: 64-Bit Debugging
Microsoft 64-Bit Systems
Windows x64 Changes
Summary
Chapter 13: Postmortem Debugging
Dump File Basics
Using Dump Files
Windows Error Reporting
Corporate Error Reporting
Summary
Chapter 14: Power Tools
Debug Diagnostic Tool
!analyze Extension Command
Summary
Chapter 15: Windows Vista Fundamentals
Chapter 1—Introduction to the Tools
Chapter 2—Introduction to the Debuggers
Chapter 6—Memory Corruptions—Part Heaps
Chapter 7—Security
Chapter 8—Interprocess Communication
Chapter 9—Resource Leaks
Chapter 10—Synchronization
Chapter 11—Writing Custom Debugger Extensions
Chapter 13—Postmortem Debugging
Summary
Appendix A: Application Verifier Test Settings
Exceptions
Handles
Heaps
Locks
Memory
ThreadPool
TLS
FilePaths
HighVersionLie
InteractiveServices
KernelModeDriverInstall
Low Resource Simulation
LuaPriv
DangerousAPIs
DirtyStacks
TimeRollOver
PrintAPI and PrintDriver
Index
A
B
C
D
E
F
G
H
I–J
K
L
M
N
O
P
Q–R
S
T
U
V
W
X–Z