code: func nextSymbol(buf *bytes.Buffer) (uint64, string, error) {
  	for {
  		line, err := buf.ReadString('\n')
  		if err != nil {
  			if err != io.EOF || line == "" {
  				return 0, "", err
  			}
  		}
  
  		if fields := nmOutputRE.FindStringSubmatch(line); len(fields) == 4 {
  			if address, err := strconv.ParseUint(fields[1], 16, 64); err == nil {
  				return address, fields[3], nil
  			}
  		}
  	}
  }
docs: // nextSymbol parses the nm output to find the next symbol listed.
  // Skips over any output it cannot recognize.