func (p *Process) readRuntimeConstants() {
	p.rtConstants = map[string]int64{}

	// Hardcoded values for Go 1.9.
	// (Go did not have constants in DWARF before 1.10.)
	m := p.rtConstants
	m["_MSpanDead"] = 0
	m["_MSpanInUse"] = 1
	m["_MSpanManual"] = 2
	m["_MSpanFree"] = 3
	m["_Gidle"] = 0
	m["_Grunnable"] = 1
	m["_Grunning"] = 2
	m["_Gsyscall"] = 3
	m["_Gwaiting"] = 4
	m["_Gdead"] = 6
	m["_Gscan"] = 0x1000
	m["_PCDATA_StackMapIndex"] = 0
	m["_FUNCDATA_LocalsPointerMaps"] = 1
	m["_FUNCDATA_ArgsPointerMaps"] = 0
	m["tflagExtraStar"] = 1 << 1
	m["kindGCProg"] = 1 << 6
	m["kindDirectIface"] = 1 << 5
	m["_PageSize"] = 1 << 13
	m["_KindSpecialFinalizer"] = 1

	// From 1.10, these constants are recorded in DWARF records.
	d, _ := p.proc.DWARF()
	r := d.Reader()
	for e, err := r.Next(); e != nil && err == nil; e, err = r.Next() {
		if e.Tag != dwarf.TagConstant {
			continue
		}
		f := e.AttrField(dwarf.AttrName)
		if f == nil {
			continue
		}
		name := f.Val.(string)
		if !strings.HasPrefix(name, "runtime.") {
			continue
		}
		name = name[8:]
		c := e.AttrField(dwarf.AttrConstValue)
		if c == nil {
			continue
		}
		p.rtConstants[name] = c.Val.(int64)
	}
}
func (p *Process) readRuntimeConstants() {
	p.rtConstants = map[string]int64{}

	
	
	m := p.rtConstants
	m["_MSpanDead"] = 0
	m["_MSpanInUse"] = 1
	m["_MSpanManual"] = 2
	m["_MSpanFree"] = 3
	m["_Gidle"] = 0
	m["_Grunnable"] = 1
	m["_Grunning"] = 2
	m["_Gsyscall"] = 3
	m["_Gwaiting"] = 4
	m["_Gdead"] = 6
	m["_Gscan"] = 0x1000
	m["_PCDATA_StackMapIndex"] = 0
	m["_FUNCDATA_LocalsPointerMaps"] = 1
	m["_FUNCDATA_ArgsPointerMaps"] = 0
	m["tflagExtraStar"] = 1 << 1
	m["kindGCProg"] = 1 << 6
	m["kindDirectIface"] = 1 << 5
	m["_PageSize"] = 1 << 13
	m["_KindSpecialFinalizer"] = 1

	
	d, _ := p.proc.DWARF()
	r := d.Reader()
	for e, err := r.Next(); e != nil && err == nil; e, err = r.Next() {
		if e.Tag != dwarf.TagConstant {
			continue
		}
		f := e.AttrField(dwarf.AttrName)
		if f == nil {
			continue
		}
		name := f.Val.(string)
		if !strings.HasPrefix(name, "runtime.") {
			continue
		}
		name = name[8:]
		c := e.AttrField(dwarf.AttrConstValue)
		if c == nil {
			continue
		}
		p.rtConstants[name] = c.Val.(int64)
	}
}
func ( p * Process ) readRuntimeConstants ( ) { p . rtConstants = map [ string ] int64 { } // Hardcoded values for Go 1.9. // (Go did not have constants in DWARF before 1.10.) m := p . rtConstants m [ " " ] = 0 m [ " " ] = 1 m [ " " ] = 2 m [ " " ] = 3 m [ " " ] = 0 m [ " " ] = 1 m [ " " ] = 2 m [ " " ] = 3 m [ " " ] = 4 m [ " " ] = 6 m [ " " ] = 0x1000 m [ " " ] = 0 m [ " " ] = 1 m [ " " ] = 0 m [ " " ] = 1 << 1 m [ " " ] = 1 << 6 m [ " " ] = 1 << 5 m [ " " ] = 1 << 13 m [ " " ] = 1 // From 1.10, these constants are recorded in DWARF records. d , _ := p . proc . DWARF ( ) r := d . Reader ( ) for e , err := r . Next ( ) ; e != nil && err == nil ; e , err = r . Next ( ) { if e . Tag != dwarf . TagConstant { continue } f := e . AttrField ( dwarf . AttrName ) if f == nil { continue } name := f . Val . ( string ) if ! strings . HasPrefix ( name , " " ) { continue } name = name [ 8 : ] c := e . AttrField ( dwarf . AttrConstValue ) if c == nil { continue } p . rtConstants [ name ] = c . Val . ( int64 ) } }
// readRuntimeConstants populates the p.rtConstants map.
readRuntimeConstants populates the p . rtConstants map .