Demystifying Debuggers, Part 2: The Anatomy of a Running Program