10

Does GDB support Stepping into a Specific function, say either f or g, on lines containing expressions of nested function calls such as

f(g());

similar to what Visual Studio 2010 support. Maybe a GDB script is the solution?

Nordlöw
  • 11,359
  • 9
  • 51
  • 97
  • 1
    The gdb-approach is a bit different. Instead of stepping into a specific function you can define skips. If you input `skip g()` gdb will execute `g()` without stepping into it and step into `f`. – Tobias Jun 05 '14 at 05:47

2 Answers2

14

The command advance from the answer https://stackoverflow.com/a/1133403/2708138 is useful. You can combine that command with print f to get the type of f in the current context beforehand.

Furthermore, I have already mentioned in the comment to your question that you can skip the function g if you never want to step through it.

See the gdb-help for the keywords advance, print and skip.

At least the skip-feature is quite new. So maybe, it was not available at the time when Employed Russian gave his answer.

Community
  • 1
  • 1
Tobias
  • 4,888
  • 1
  • 15
  • 37
  • 2
    This is the correct answer! `skip` is designed to solve the exact problem that the question describes. `step` and `finish` alternative gets tedious and tiring very soon! I'll add a bounty for this answer so that it gets more attention and saves people some time. – Pavan Manjunath Jun 20 '19 at 18:35
13

Does GDB support Stepping into a Specific function

No. If you want to step into g, a simple step should do it. If you want to step into f, do step, finish, step.

You are welcome to file a feature request in GDB bugzilla, though I doubt Step into Specific can be reasonably implemented in a CLI debugger.

Employed Russian
  • 182,696
  • 29
  • 267
  • 329