code: func nodesPerSymbol(ns nodes, symbols []*objSymbol) map[*objSymbol]nodes {
  	symNodes := make(map[*objSymbol]nodes)
  	for _, s := range symbols {
  		// Gather samples for this symbol.
  		for _, n := range ns {
  			address := n.info.address - s.base
  			if address >= s.sym.Start && address < s.sym.End {
  				symNodes[s] = append(symNodes[s], n)
  			}
  		}
  	}
  	return symNodes
  }
docs: // nodesPerSymbol classifies nodes into a group of symbols.