Turns out it exists in gdb, although in a limited scope!
#include <iostream>
int main() {
int a = 0;
std::cout << "before: " << a << std::endl;
a += 1;
std::cout << "after: " << a << std::endl;
return 0;
}
Compile with g++ -g
and run gdb a.out
(gdb) run
before: 0
after: 1
[Inferior 1 (process 10976) exited normally]
(gdb) break 1
Breakpoint 1 at 0x5555555551d5: file main.cpp, line 6.
(gdb) run
Breakpoint 1, main () at main.cpp:6
6 int a = 0;
(gdb) jump +3
Continuing at 0x55555555521b.
after: 0
[Inferior 1 (process 10979) exited normally]
See here for documentation