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

--- Comment #45 from Ian Lance Taylor <ian at airs dot com> ---
If we change the PC returned by backtrace_full, and then use that changed PC to
look up file/line information, we might get different results.  That seems
clear.  My next question is: when does this matter?

There are two ways that we use the result of runtime_callers: either we use the
file/line information, or we use the PC.  If we use the file/line information,
all is well, and there is nothing to discuss.  If we use the PC, as in
runtime.Callers, then it's true that if we pass that PC back to libbacktrace we
may get different file/line information.  But, so what?  We've already lost the
original file/line information anyhow.

The idea is that the changed PC will be the same as the PC returned by the gc
library.  Therefore, we should get approximately the same file/line information
as the gc library gets.  That is why runtime/pprof/pprof.go in the gc library
backs up the PC to the call instruction: because it knows that it has the PC
after the call instruction.

Reply via email to