code: func collectMappingSources(p *profile.Profile, source string) plugin.MappingSources {
  	ms := plugin.MappingSources{}
  	for _, m := range p.Mapping {
  		src := struct {
  			Source string
  			Start  uint64
  		}{
  			source, m.Start,
  		}
  		key := m.BuildID
  		if key == "" {
  			key = m.File
  		}
  		if key == "" {
  			// If there is no build id or source file, use the source as the
  			// mapping file. This will enable remote symbolization for this
  			// mapping, in particular for Go profiles on the legacy format.
  			// The source is reset back to empty string by unsourceMapping
  			// which is called after symbolization is finished.
  			m.File = source
  			key = source
  		}
  		ms[key] = append(ms[key], src)
  	}
  	return ms
  }
docs: // collectMappingSources saves the mapping sources of a profile.