func addMappings(p *profile.Profile) error { // Parse memory map from /proc/self/maps f, err := os.Open("/proc/self/maps") if err != nil { return err } defer f.Close() return p.ParseMemoryMap(f) }
func (fns profileFunctionMap) findOrAddFunction(name, filename string, p *profile.Profile) *profile.Function { f := profile.Function{ Name: name, SystemName: name, Filename: filename, } if fp := fns[f]; fp != nil { return fp } fp := new(profile.Function) fns[f] = fp *fp = f fp.ID = uint64(len(p.Function) + 1) p.Function = append(p.Function, fp) return fp }