Do you really need more than five or so *physical* stack frames
during
profiling, to figure out what is going on? Graphs generated from DWARF
unwinding typically will show logical stack frames from inlining, too,
and appear much deeper.
Yes, more than a couple times per year I encounter cases that require
10 to 12 physical stack frames in order to understand what is happening.
The current (deepest) level can more than 5 or so frames from the nearest
level that has meaning for the application programmer. This happens
particularly often in Boost, other C++ object-oriented programming
(std::string and relatives have several physical levels that tend to
obscure) and python (or any interpreter with a deeply-recursive
implementation.)