lldb
Skipping boring functions in debuggers
In debuggers, stepping into a function with arguments that involve function calls may step into the nested function calls, even if they are simple and uninteresting, such as those found in the C++ STL.
GDB
Consider the following example:
#include <cstdio>
#include <memory>
#include <vector>
using namespace std;
void foo(int i, int j) {
printf("%d %d\n", i, j);
}
int main() {
auto i = make_unique<int>(3);
vector v{1,2};
foo(*i, v.back()); // step into
}
When GDB stops at the foo call, the step (s) command will step into std::vector::back and std::unique_ptr::operator*.
While you can execute finish (fin) and then execute s again, it's time-consuming and distracting, especially when dealing with complex argument expressions.