code: func (l *Location) key() locationKey {
  	key := locationKey{
  		addr:     l.Address,
  		isFolded: l.IsFolded,
  	}
  	if l.Mapping != nil {
  		// Normalizes address to handle address space randomization.
  		key.addr -= l.Mapping.Start
  		key.mappingID = l.Mapping.ID
  	}
  	lines := make([]string, len(l.Line)*2)
  	for i, line := range l.Line {
  		if line.Function != nil {
  			lines[i*2] = strconv.FormatUint(line.Function.ID, 16)
  		}
  		lines[i*2+1] = strconv.FormatInt(line.Line, 16)
  	}
  	key.lines = strings.Join(lines, "|")
  	return key
  }
docs: // key generates locationKey to be used as a key for maps.