### Step Debug

Button: Shortcut key: [D] Menu: Run->Step debug (from Source window)

The Step Debug command executes the current line in the program. If the current line is a call, and debug information is available for any function called before the return to the current function, execution halts at the first statement for which debug information is available. If no debug information is available, execution halts after the call.

For example, if A calls B and A is compiled without debug information, while B is compiled with debug information, after a Step Debug from a call to A, execution will stop at the first executable statement of B.

C++ only: If the current line contains a complex call (for example `p->memberFunc1()->memberFunc2().memberFunc3(func1(), func2())`), the debugger examines each call (and any calls beneath it) for functions containing debug information, and steps into the first such function.The order in which it examines the calls is based on the order of the calls in the assembly code, which is not necessarily the order in which the calls appear in the source code. If you want to do a step debug into a particular function with debug information in a complex call, switch to mixed view, select the assembly code line containing the call to the function you want to debug, do a run to location, and then do a Step Debug into the function.

Note: Because of the more complex analysis the debugger must do to check for debuggable code during a Step Debug command, the performance of Step Debug may be slower than that of the Step Over command.