https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #47 from Ian Lance Taylor <ian at airs dot com> ---
We have to separate backtrace_full and backtrace_simple, which are part of the
libbacktrace library, from functions like runtime_callers which are part of
libgo.  The libbacktrace library is used by several different projects.  It is
not part of libgo.

It may be correct that libbacktrace should never decrement pc.  But the
argument for that can't be the behaviour of the gc library.

The bit in comment #9 about not decrementing the pc for a signal frame is
specific to libbacktrace.  You can see that in unwind in
libbacktrace/backtrace.c and in simple_unwind in libbacktrace/simple.c.

Perhaps we need to change libbacktrace so that backtrace_full_callback and
backtrace_simple_callback take an additional parameter, which is whether the PC
is in a signal frame.  From libgo's perspective, though, that would be exactly
the same as simply always adding to pc in callback in go-callers.c.  You said
that did not work, and I'm still trying to understand why.

Reply via email to