https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999
--- Comment #10 from Dominik Vogt <vogt at linux dot vnet.ibm.com> --- As far as I understand, the code in libbacktrace was originally only intended for handling exceptions, not for generating stack traces? For the former, the code is fine. But given a function's return address, identifying the call instruction is non-trivial. Gdb has complex heuristics to get that right in case of inlined functions, tail calls or the hand written trampolines in libffi. Glibc probably has the same complexity for backtrace_symbols() call. With libgo's backtrace functionality we need to duplicate the same logic in libbacktrace, no?