code: func (c *cache) augmentGoroutine(goroutine *Goroutine) {
  	if c.files == nil {
  		c.files = map[string][]byte{}
  	}
  	if c.parsed == nil {
  		c.parsed = map[string]*parsedFile{}
  	}
  	// For each call site, look at the next call and populate it. Then we can
  	// walk back and reformat things.
  	for i := range goroutine.Stack.Calls {
  		c.load(goroutine.Stack.Calls[i].LocalSrcPath)
  	}
  
  	// Once all loaded, we can look at the next call when available.
  	for i := 0; i < len(goroutine.Stack.Calls)-1; i++ {
  		// Get the AST from the previous call and process the call line with it.
  		if f := c.getFuncAST(&goroutine.Stack.Calls[i]); f != nil {
  			processCall(&goroutine.Stack.Calls[i], f)
  		}
  	}
  }
docs: // augmentGoroutine processes source files to improve call to be more
  // descriptive.
  //
  // It modifies the routine.