With native application debugging, the operating system provides a great deal of support for getting a debugger on a process. But when running in a debugger, things are different because, as the Heisenberg Uncertainty Principle postulates, the thing changes because it’s being observed. In this section you’ll learn, briefly, what a debugger is and how it operates. You’ll also learn the tricks to always getting a debugger on a process, no matter how that process crashes or is started. Finally, you’ll learn how to get a minidump of a process on production systems so you can look at those minidumps with WinDBG or Visual Studio and squash the hardest bugs of all.