mirror of
https://github.com/golang/go
synced 2024-11-26 16:07:00 -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
|
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 {
|
type neon128 struct {
|
||||||
low uint64
|
low uint64
|
||||||
|
@ -285,10 +285,6 @@ func testCPUProfile(t *testing.T, matches matchFunc, need []string, avoid []stri
|
|||||||
if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
|
if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
|
||||||
broken = true
|
broken = true
|
||||||
}
|
}
|
||||||
case "windows":
|
|
||||||
if runtime.GOARCH == "arm" {
|
|
||||||
broken = true // See https://golang.org/issues/42862
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
maxDuration := 5 * time.Second
|
maxDuration := 5 * time.Second
|
||||||
|
Loading…
Reference in New Issue
Block a user