Upon a program failure, programmers ask how the failure came to be. Modern debugging tools employ sophisticated mechanisms to help answering this question. These mechanisms embody a spectrum of contributions to program comprehension. In this paper, we study this spectrum with the goal of finding an optimal position. We define the optimal position as the set of techniques which tools can employ to efficiently answer this debugging question. Our position demands a big picture of a program execution, which is essential for better program comprehension. We demonstrate our position with two case studies. We envision that emerging debugging tools can benefit from taking this position to facilitate the debugging process.