]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/trace: disable frame pointer unwinding on plan9
authorPhilip Silva <philip.silva@protonmail.com>
Tue, 30 May 2023 17:59:43 +0000 (19:59 +0200)
committerKeith Randall <khr@golang.org>
Tue, 13 Jun 2023 14:08:14 +0000 (14:08 +0000)
Fixes #60254

Change-Id: Ifd9e517a9479e5cd63fd3622b2556989d5f84eb9
Reviewed-on: https://go-review.googlesource.com/c/go/+/499036
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Bypass: Keith Randall <khr@golang.org>

src/runtime/trace.go

index 2f9e141b09ed216023ecc228a764dc90e6f2051f..ac80ca2902c4b6096ff854a9009d37f30402c4d8 100644 (file)
@@ -15,6 +15,7 @@ package runtime
 import (
        "internal/abi"
        "internal/goarch"
+       "internal/goos"
        "runtime/internal/atomic"
        "runtime/internal/sys"
        "unsafe"
@@ -993,8 +994,9 @@ func traceStackID(mp *m, pcBuf []uintptr, skip int) uint64 {
 
 // tracefpunwindoff returns true if frame pointer unwinding for the tracer is
 // disabled via GODEBUG or not supported by the architecture.
+// TODO(#60254): support frame pointer unwinding on plan9/amd64.
 func tracefpunwindoff() bool {
-       return debug.tracefpunwindoff != 0 || (goarch.ArchFamily != goarch.AMD64 && goarch.ArchFamily != goarch.ARM64)
+       return debug.tracefpunwindoff != 0 || (goarch.ArchFamily != goarch.AMD64 && goarch.ArchFamily != goarch.ARM64) || goos.IsPlan9 == 1
 }
 
 // fpTracebackPCs populates pcBuf with the return addresses for each frame and