pkg/proc: Fix panic in goroutine parsing for binaries compiled with go1.10 (#2283)
Before go1.11 waitreason field was a string, not an int. Return 0 waitreason for old go versions. Should fix #2282
This commit is contained in:
parent
57f033e4bc
commit
6726ec3aa3
@ -850,7 +850,10 @@ func (v *Variable) parseG() (*G, error) {
|
|||||||
gopc := loadInt64Maybe("gopc")
|
gopc := loadInt64Maybe("gopc")
|
||||||
startpc := loadInt64Maybe("startpc")
|
startpc := loadInt64Maybe("startpc")
|
||||||
waitSince := loadInt64Maybe("waitsince")
|
waitSince := loadInt64Maybe("waitsince")
|
||||||
waitReason := loadInt64Maybe("waitreason")
|
waitReason := int64(0)
|
||||||
|
if producer := v.bi.Producer(); producer != "" && goversion.ProducerAfterOrEqual(producer, 1, 11) {
|
||||||
|
waitReason = loadInt64Maybe("waitreason")
|
||||||
|
}
|
||||||
var stackhi, stacklo uint64
|
var stackhi, stacklo uint64
|
||||||
if stackVar := v.loadFieldNamed("stack"); stackVar != nil {
|
if stackVar := v.loadFieldNamed("stack"); stackVar != nil {
|
||||||
if stackhiVar := stackVar.fieldVariable("hi"); stackhiVar != nil {
|
if stackhiVar := stackVar.fieldVariable("hi"); stackhiVar != nil {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user