mirror of
https://github.com/golang/go
synced 2024-10-14 03:43:28 +00:00
runtime: turn off 'unexpected return pc' print on arm traceback
It can happen legitimately if a profiling signal arrives at just the wrong moment. It's harmless. Fixes #8153. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews, iant, r https://golang.org/cl/118670043
This commit is contained in:
parent
14e8885c32
commit
e5e547c71f
|
@ -128,9 +128,14 @@ runtime·gentraceback(uintptr pc0, uintptr sp0, uintptr lr0, G *gp, int32 skip,
|
|||
frame.lr = *(uintptr*)frame.sp;
|
||||
flr = runtime·findfunc(frame.lr);
|
||||
if(flr == nil) {
|
||||
runtime·printf("runtime: unexpected return pc for %s called from %p\n", runtime·funcname(f), frame.lr);
|
||||
if(callback != nil)
|
||||
// This happens if you get a profiling interrupt at just the wrong time.
|
||||
// In that context it is okay to stop early.
|
||||
// But if callback is set, we're doing a garbage collection and must
|
||||
// get everything, so crash loudly.
|
||||
if(callback != nil) {
|
||||
runtime·printf("runtime: unexpected return pc for %s called from %p\n", runtime·funcname(f), frame.lr);
|
||||
runtime·throw("unknown caller pc");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue