this post was submitted on 26 Jun 2023
19 points (100.0% liked)

Programming

17397 readers
186 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
19
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 

Hi, has anybody of you ever seen a feature as described in the post in your environment?

Thank you

Update: As some readers appear to have skimmed the text, please feel free to point out possible accessibility issues, poor choices of words, etc.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

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

[–] [email protected] 4 points 1 year ago (1 children)

Many debuggers have a set next statement kind type of functionality, but with gdb you can script it so that it performs the jump automatically, like the article suggests:

break 1
commands
jump +3
end
[–] [email protected] 3 points 1 year ago

That's pretty cool. I always wondered why gdb has a scripting interface, now I'm curious what other cool user scripts one can do through it.