mirror of
https://github.com/golang/go
synced 2024-11-19 16:34:49 -07:00
cmd/trace: add -d that prints parsed traces
This is useful when debugging the tool. Some tweaks on logging: log the webserver address, log.Print instead of log.Printf when possible. Change-Id: Iaf71b6523b40dc13795511784d48eacf0f5a396a Reviewed-on: https://go-review.googlesource.com/59570 Reviewed-by: Heschi Kreinick <heschi@google.com> Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
This commit is contained in:
parent
2a56b023af
commit
0b4f4e0153
@ -42,6 +42,7 @@ Supported profile types are:
|
||||
Flags:
|
||||
-http=addr: HTTP service address (e.g., ':6060')
|
||||
-pprof=type: print a pprof-like profile instead
|
||||
-d: print debug info such as parsed events
|
||||
|
||||
Note that while the various profiles available when launching
|
||||
'go tool trace' work on every browser, the trace viewer itself
|
||||
@ -52,6 +53,7 @@ and is only actively tested on that browser.
|
||||
var (
|
||||
httpFlag = flag.String("http", "localhost:0", "HTTP service address (e.g., ':6060')")
|
||||
pprofFlag = flag.String("pprof", "", "print a pprof-like profile instead")
|
||||
debugFlag = flag.Bool("d", false, "print debug information such as parsed events list")
|
||||
|
||||
// The binary file name, left here for serveSVGProfile.
|
||||
programBinary string
|
||||
@ -103,13 +105,18 @@ func main() {
|
||||
dief("failed to create server socket: %v\n", err)
|
||||
}
|
||||
|
||||
log.Printf("Parsing trace...")
|
||||
log.Print("Parsing trace...")
|
||||
events, err := parseEvents()
|
||||
if err != nil {
|
||||
dief("%v\n", err)
|
||||
}
|
||||
|
||||
log.Printf("Serializing trace...")
|
||||
if *debugFlag {
|
||||
trace.Print(events)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
log.Print("Serializing trace...")
|
||||
params := &traceParams{
|
||||
events: events,
|
||||
endTime: int64(1<<63 - 1),
|
||||
@ -119,13 +126,12 @@ func main() {
|
||||
dief("%v\n", err)
|
||||
}
|
||||
|
||||
log.Printf("Splitting trace...")
|
||||
log.Print("Splitting trace...")
|
||||
ranges = splitTrace(data)
|
||||
|
||||
log.Printf("Opening browser")
|
||||
if !browser.Open("http://" + ln.Addr().String()) {
|
||||
fmt.Fprintf(os.Stderr, "Trace viewer is listening on http://%s\n", ln.Addr().String())
|
||||
}
|
||||
addr := "http://" + ln.Addr().String()
|
||||
log.Printf("Opening browser. Trace viewer is listening on %s", addr)
|
||||
browser.Open(addr)
|
||||
|
||||
// Start http server.
|
||||
http.HandleFunc("/", httpMain)
|
||||
|
Loading…
Reference in New Issue
Block a user