1. 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 reads a step statement from a user that includes a parameter that specifies one of line step mode, statement step mode, and automatic selection of step mode according to at least one selection criterion, and when the parameter in the step statement specifies line step mode, the granularity selection mechanism sets step mode of the debugger to line step mode, and when the parameter in the step statement specifies statement step mode, the granularity selection mechanism sets the step mode of the debugger to statement step mode, and when the parameter in the step statement specifies automatic selection of step mode, the granularity selection mechanism performs an analysis of the program that determines whether the program satisfies at least one selection criterion, 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 at least one selection criterion comprises multiple statements on a line.