https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999
--- Comment #23 from Ian Lance Taylor <ian at airs dot com> --- Yes, I do mean to change saveg in mprof.goc. runtime_callers in general returns full file/line information, which is required for full correctness when using gccgo. When it devolves back to a plain PC, you've correctly observed that it gets the wrong PC. I'm suggesting correcting the PC value wherever we devolve, which happens in runtime.Callers and, as you've pointed out, in saveg in mprof.goc. I looked for other calls to runtime_callers, and found one other case: in runtime_sigprof in proc.c. I think it's worth trying fixing those cases to see if it fixes this bug.