From: Keith Randall Date: Thu, 6 Nov 2014 17:30:41 +0000 (-0800) Subject: runtime: don't stop bitmap dump at BitsDead X-Git-Tag: go1.4rc1~39 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5b110c7b08946a2a2810cb4614c078c74645a3d1;p=gostls13.git runtime: don't stop bitmap dump at BitsDead Stack bitmaps need to be scanned past any BitsDead entries. Object bitmaps will not have any BitsDead in them (bitmap extraction stops at the first BitsDead entry in makeheapobjbv). data/bss bitmaps also have no BitsDead entries. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/168270043 --- diff --git a/src/runtime/heapdump.c b/src/runtime/heapdump.c index 94a4bd2be5..eddbc1d1c9 100644 --- a/src/runtime/heapdump.c +++ b/src/runtime/heapdump.c @@ -251,7 +251,9 @@ dumpbv(BitVector *bv, uintptr offset) for(i = 0; i < bv->n; i += BitsPerPointer) { switch(bv->bytedata[i/8] >> i%8 & 3) { case BitsDead: - return; + // BitsDead has already been processed in makeheapobjbv. + // We should only see it in stack maps, in which case we should continue processing. + break; case BitsScalar: break; case BitsPointer: