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
Interesting idea! Although it seems to be very invasive. If it really detours code the breakpoint suddenly modifies execution. Most debuggers seem to bebuilt as pure measurement tools. And i have the feeling for good reason: Understanding when the code will be executed is a big part of debugging. And the need to detour suggests the code is poorly debuggable.
Is there a fediverse alternative yet?
Also, if you are a technical person I urge you to start a blog where you document problems you solve. It’s a great ressource for others and a resumé for you.