func (p *ProcessStatSample) collectMemInfo(proc *process.Process) { defer func() { if e := recover(); e != nil { log.Warnf("Recovered from panic on memory stats collection. Maybe unsupported on this platform.") } }() meminfo, err := proc.MemoryInfo() if err != nil { log.Warnf("Error encountered collecting memory stats: %s", err) } else { src := reflect.ValueOf(meminfo).Elem() dest := reflect.ValueOf(&p.Memory).Elem() sum(&src, &dest) } }