Set execution point
The Set Execution Point action allows you to jump to an arbitrary line of code in the editor during a debug session and set the execution point there, skipping all the other commands in between.
This action works for both linear and non-linear execution paths. Use it to break and skip loops, or select another branch in an if-else
clause or switch-case
statement. For example, this action can be useful if you want to check another branch without restarting the debug session.
Invoke Set Execution Point
Use one of the following options:
Drag the current execution pointer (the orange arrow in the gutter) to the required line of code.
Place the caret at the required line and call Set Execution Point to Cursor from (Control+Shift+A).
In Set Execution Point to Cursor action.
, assign a shortcut for theSave the settings, place the caret at the required line, and use the shortcut.
As a result, execution will be resumed from the new location, skipping the commands in between.
When using Set Execution Point, make sure to take the possible negative consequences into account:
If you jump over the line at which a variable is initialized, you will get the value from the stack/register.
In case the executable code was optimized by the compiler, you might get an unpredictable result or be unable to move the execution point at all.
If you jump to a function that is not called in the current control flow graph, CLion will warn you that the execution might be broken (not supported for GDB currently).
Also, there are other known issues like the multiple candidates exist error (CPP-21800) and problems with
std::cin
andstd::cout
(CPP-22055).