• Austin Clements's avatar
    runtime: fix, simplify, and improve scan state in goroutine header · c7c7c703
    Austin Clements authored
    Currently goroutineheader goes through some convolutions to *almost*
    print the scan state of a G. However, the code path that would print
    the scan state of the G refers to gStatusStrings where it almost
    certainly meant to refer to gScanStatusStrings (which is unused), so
    it winds up printing the regular status string without the scan state
    either way. Furthermore, if the G is in _Gwaiting, we override the
    status string and lose where this would indicate the scan state if it
    worked.
    
    This commit fixes this so the runtime prints the scan state. However,
    rather than using a parallel list of status strings, this simply adds
    a conditional print if the scan bit is set. This lets us remove the
    string list, prints the scan state even in _Gwaiting, and lets us
    strip off the scan bit at the beginning of the function, which
    simplifies the rest of it.
    
    Change-Id: Ic0adbe5c05abf4adda93da59f93b578172b28e3d
    Reviewed-on: https://go-review.googlesource.com/18092Reviewed-by: default avatarKeith Randall <khr@golang.org>
    c7c7c703
traceback.go 23.5 KB