diff options
| author | Clément Chigot <clement.chigot@atos.net> | 2019-03-25 10:26:44 +0100 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2019-03-26 20:04:42 +0000 |
| commit | b5cf035d1ca21ee4bf799c6d97b2759471b76483 (patch) | |
| tree | 186ed54996563dae3e6e7716181e92c17c01f105 /src/runtime/proc.go | |
| parent | e007916cea969c4d5917da931413fba4eb43e8f6 (diff) | |
| download | go-b5cf035d1ca21ee4bf799c6d97b2759471b76483.tar.xz | |
runtime: improve sigtramp on aix/ppc64 to handle SIGPROF
R14, R15 must be saved in sigtramp because they might be modified by Go
code when a SIGPROF occurs.
Fixes #28555
Change-Id: I573541f108d7d6aac8e60d33c649e5db943f3ef5
Reviewed-on: https://go-review.googlesource.com/c/go/+/169117
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/proc.go')
| -rw-r--r-- | src/runtime/proc.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/proc.go b/src/runtime/proc.go index a077a5da03..9e993afba9 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -3758,7 +3758,7 @@ func sigprof(pc, sp, lr uintptr, gp *g, mp *m) { // Normal traceback is impossible or has failed. // See if it falls into several common cases. n = 0 - if (GOOS == "windows" || GOOS == "solaris" || GOOS == "darwin") && mp.libcallg != 0 && mp.libcallpc != 0 && mp.libcallsp != 0 { + if (GOOS == "windows" || GOOS == "solaris" || GOOS == "darwin" || GOOS == "aix") && mp.libcallg != 0 && mp.libcallpc != 0 && mp.libcallsp != 0 { // Libcall, i.e. runtime syscall on windows. // Collect Go stack that leads to the call. n = gentraceback(mp.libcallpc, mp.libcallsp, 0, mp.libcallg.ptr(), 0, &stk[0], len(stk), nil, nil, 0) |
