...
Package trace
Go execution tracer.
The tracer captures a wide range of execution events like goroutine
creation/blocking/unblocking, syscall enter/exit/block, GC-related events,
changes of heap size, processor start/stop, etc and writes them to an io.Writer
in a compact form. A precise nanosecond-precision timestamp and a stack
trace is captured for most events. A trace can be analyzed later with
'go tool trace' command.
In the call graph viewer below, each node
is a function belonging to this package
and its children are the functions it
calls—perhaps dynamically.
The root nodes are the entry points of the
package: functions that may be called from
outside the package.
There may be non-exported or anonymous
functions among them if they are called
dynamically from another package.
Click a node to visit that function's source code.
From there you can visit its callers by
clicking its declaring func
token.
Functions may be omitted if they were
determined to be unreachable in the
particular programs or tests that were
analyzed.
func Start(w io.Writer) error
Start enables tracing for the current program.
While tracing, the trace will be buffered and written to w.
Start returns an error if tracing is already enabled.
func Stop()
Stop stops the current tracing, if any.
Stop only returns after all the writes for the trace have completed.