Patent ID: 8397218

Claim:
An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a program residing in the memory; a debugger residing in the memory and executed by the at least one processor, the debugger debugging the program, the debugger comprising: a step mechanism for stepping through the program while debugging the program, the step mechanism comprising a granularity selection mechanism that allows a user to specify line step mode, statement step mode, and automatic selection of step mode according to at least one selection criterion, wherein: when a step statement specifies manual granularity selection, and when the step statement specifies line step mode, the granularity selection mechanism sets the step mode of the debugger to line step mode; when the step statement specifies manual granularity selection, and when the step statement specifies statement step mode, the granularity selection mechanism sets step mode of the debugger to statement step mode; and when the step statement specifies automatic granularity selection, the granularity selection mechanism performs automatic selection of one of line step mode and statement step mode according to an analysis of the program that determines whether the program satisfies at least one selection criterion, wherein the at least one selection criterion specifies at least one characteristic of the program and specifies line step mode when the at least one characteristic of the program satisfies the at least one selection criterion, and specifies statement step mode when the at least one characteristic of the program does not satisfy the at least one selection criterion, wherein the characteristics of the program include multiple statements on one line and one line loops, wherein the at least one selection criterion comprises a step score that is initialized to zero and is incremented and decremented according to the characteristics of the program as the program is analyzed by the debugger, wherein line step mode is automatically selected when the step score is greater than zero and statement step mode is automatically selected when the step score is not greater than zero.