The former breaks at foo and tests the condition. The latter automatically single-steps and tests for the condition. But even a breakpoint command with a conditional trigger can also have a filter attached to it. Considerations Various events have different degrees of overhead in respect to the execution time of the program being debugged. Some events, like the simplest breakpoints, have practically no overhead.
Events based on a single breakpoint have minimal overhead.
Multiple breakpoints such as inclass , that might result in hundreds of breakpoints, have an overhead only during creation time. In the case of step and next , by default all breakpoints are taken out before the process is resumed and reinserted once the step completes. If you are using many breakpoints or multiple breakpoints on prolific classes, the speed of step and next slows down considerably. The slowest events are those that utilize automatic single stepping. This might be explicit and obvious as in the trace step command, which single steps through every source line.