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 `go tool trace`.
Tracing a Go program
Support for tracing tests and benchmarks built with the standard
testing package is built into `go test`. For example, the following
command runs the test in the current directory and writes the trace
file (trace.out).
go test -trace=test.out
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:
import _ "net/http/pprof"
See the net/http/pprof package for more details.
▾ Example
Example demonstrates the use of the trace package to trace
the execution of a Go program. The trace output will be
written to the file trace.out