https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109719
Bug ID: 109719 Summary: Truncated frame-pointer unwinding via Linux perf with g++ Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: chergert at redhat dot com Target Milestone: --- On Fedora 38, frame-pointers are enabled by default. Caveats of course. However, I noticed that clang++ is generating code that can unwind with frame-pointers just fine where as g++ is generating code that fails to unwind past a single frame for some projects. Where I've noticed this is when profiling GTK/GNOME applications. Harfbuzz, which is C++ (no-rtti, no-exceptions, no-threadsafe-statics, and no stdlibc++), regularly results in stacktraces from Linux perf containing 2 frames. One of them looks corrupted, and the second to a Harfbuzz function. When I recompile the project with clang++ instead (leaving the rest of the system still compiled with gcc) I get proper stacktraces from Linux perf showing how the Harfbuzz API was called (via GLib/GTK/Pango/etc). Happy to provide more information and/or be remote hands/eyes. Thanks!