mirror of
https://github.com/golang/go
synced 2024-11-22 16:44:54 -07:00
runtime: fix windows/arm CONTEXT_CONTROL
The constant was wrong, and the “right” constant doesn't work either. But with the actually-right constant (and possibly earlier fixes in this stack as well), profiling now works. Change-Id: If8caff1da556826db40961fb9bcfe2b1f31ea9f9 Reviewed-on: https://go-review.googlesource.com/c/go/+/288808 Trust: Russ Cox <rsc@golang.org> Trust: Jason A. Donenfeld <Jason@zx2c4.com> Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
76ab626bfc
commit
75e273fc2c
@ -4,7 +4,13 @@
|
||||
|
||||
package runtime
|
||||
|
||||
const _CONTEXT_CONTROL = 0x10001
|
||||
// NOTE(rsc): _CONTEXT_CONTROL is actually 0x200001 and should include PC, SP, and LR.
|
||||
// However, empirically, LR doesn't come along on Windows 10
|
||||
// unless you also set _CONTEXT_INTEGER (0x200002).
|
||||
// Without LR, we skip over the next-to-bottom function in profiles
|
||||
// when the bottom function is frameless.
|
||||
// So we set both here, to make a working _CONTEXT_CONTROL.
|
||||
const _CONTEXT_CONTROL = 0x200003
|
||||
|
||||
type neon128 struct {
|
||||
low uint64
|
||||
|
@ -285,10 +285,6 @@ func testCPUProfile(t *testing.T, matches matchFunc, need []string, avoid []stri
|
||||
if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
|
||||
broken = true
|
||||
}
|
||||
case "windows":
|
||||
if runtime.GOARCH == "arm" {
|
||||
broken = true // See https://golang.org/issues/42862
|
||||
}
|
||||
}
|
||||
|
||||
maxDuration := 5 * time.Second
|
||||
|
Loading…
Reference in New Issue
Block a user