Package trace contains facilities for programs to generate trace for Go
execution tracer.

The execution trace captures a wide range of execution events such as goroutine
creation/blocking/unblocking, syscall enter/exit/block, GC-related events,
changes of heap size, processor start/stop, etc. A precise nanosecond-precision
timestamp and a stack trace is captured for most events. The generated trace can
be interpreted using .

Tracing a Go program

This runtime/trace package provides APIs to add equivalent tracing support to a
standalone program. See the Example that demonstrates how to use this API to
enable tracing.

There is also a standard HTTP interface to profiling data. Adding the following
line will install handlers under the /debug/pprof/trace URL to download live
profiles:

See the net/http/pprof package for more details.


Example:

Package files

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.

Stop stops the current tracing, if any. Stop only returns after all the writes
for the trace have completed.