func main() { flag.Parse() args := flag.Args() if len(args) == 1 { // pprof http://... r := new(report.Reporter) u := args[0] resp, err := http.Get(u) if err != nil { log.Fatal(err) } LoadProfile(r, resp.Body) symu, err := url.Parse(u) if err != nil { log.Fatal(err) } symu.Path = "/debug/pprof/symbol" table := &report.RemoteResolver{Url: symu.String()} err = table.Prepare(r.Symbols()) if err != nil { log.Fatal(err) } r.Resolver = table PrintGraph(os.Stdout, r, u) } else { exe, prof := args[0], args[1] r, err := LoadSymbols(exe) if err != nil { log.Fatal(err) } f, err := os.Open(prof) if err != nil { log.Fatal(err) } LoadProfile(r, f) PrintGraph(os.Stdout, r, exe) } }