code: func stack(skip int) []byte {
  	buf := new(bytes.Buffer) // the returned data
  	// As we loop, we open files and read them. These variables record the currently
  	// loaded file.
  	var lines [][]byte
  	var lastFile string
  	for i := skip; ; i++ { // Skip the expected number of frames
  		pc, file, line, ok := runtime.Caller(i)
  		if !ok {
  			break
  		}
  		// Print this much at least.  If we can't find the source, it won't show.
  		fmt.Fprintf(buf, "%s:%d (0x%x)\n", file, line, pc)
  		if file != lastFile {
  			data, err := ioutil.ReadFile(file)
  			if err != nil {
  				continue
  			}
  			lines = bytes.Split(data, []byte{'\n'})
  			lastFile = file
  		}
  		fmt.Fprintf(buf, "\t%s: %s\n", function(pc), source(lines, line))
  	}
  	return buf.Bytes()
  }
docs: // stack returns a nicely formatted stack frame, skipping skip frames