Commit 9680980e authored by Austin Clements's avatar Austin Clements

runtime: don't assume arena is in address order

On amd64, the arena is no longer in address space order, but currently
the heap dumper assumes that it is. Fix this assumption.

Change-Id: Iab1953cd36b359d0fb78ed49e5eb813116a18855
Reviewed-on: https://go-review.googlesource.com/96776
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarRick Hudson <rlh@golang.org>
parent b86e7668
...@@ -491,10 +491,13 @@ func dumpparams() { ...@@ -491,10 +491,13 @@ func dumpparams() {
var arenaStart, arenaEnd uintptr var arenaStart, arenaEnd uintptr
for i, ha := range mheap_.arenas { for i, ha := range mheap_.arenas {
if ha != nil { if ha != nil {
if arenaStart == 0 { base := arenaBase(uint(i))
arenaStart = arenaBase(uint(i)) if arenaStart == 0 || base < arenaStart {
arenaStart = base
}
if base+heapArenaBytes > arenaEnd {
arenaEnd = base + heapArenaBytes
} }
arenaEnd = arenaBase(uint(i)) + heapArenaBytes
} }
} }
dumpint(uint64(arenaStart)) dumpint(uint64(arenaStart))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment