const ( EvNone event.Type = iota // unused // Structural events. EvEventBatch // start of per-M batch of events [generation, M ID, timestamp, batch length] EvStacks // start of a section of the stack table [...EvStack] EvStack // stack table entry [ID, ...{PC, func string ID, file string ID, line #}] EvStrings // start of a section of the string dictionary [...EvString] EvString // string dictionary entry [ID, length, string] EvCPUSamples // start of a section of CPU samples [...EvCPUSample] EvCPUSample // CPU profiling sample [timestamp, M ID, P ID, goroutine ID, stack ID] EvFrequency // timestamp units per sec [freq] // Procs. EvProcsChange // current value of GOMAXPROCS [timestamp, GOMAXPROCS, stack ID] EvProcStart // start of P [timestamp, P ID, P seq] EvProcStop // stop of P [timestamp] EvProcSteal // P was stolen [timestamp, P ID, P seq, M ID] EvProcStatus // P status at the start of a generation [timestamp, P ID, status] // Goroutines. EvGoCreate // goroutine creation [timestamp, new goroutine ID, new stack ID, stack ID] EvGoCreateSyscall // goroutine appears in syscall (cgo callback) [timestamp, new goroutine ID] EvGoStart // goroutine starts running [timestamp, goroutine ID, goroutine seq] EvGoDestroy // goroutine ends [timestamp] EvGoDestroySyscall // goroutine ends in syscall (cgo callback) [timestamp] EvGoStop // goroutine yields its time, but is runnable [timestamp, reason, stack ID] EvGoBlock // goroutine blocks [timestamp, reason, stack ID] EvGoUnblock // goroutine is unblocked [timestamp, goroutine ID, goroutine seq, stack ID] EvGoSyscallBegin // syscall enter [timestamp, P seq, stack ID] EvGoSyscallEnd // syscall exit [timestamp] EvGoSyscallEndBlocked // syscall exit and it blocked at some point [timestamp] EvGoStatus // goroutine status at the start of a generation [timestamp, goroutine ID, thread ID, status] // STW. EvSTWBegin // STW start [timestamp, kind] EvSTWEnd // STW done [timestamp] // GC events. EvGCActive // GC active [timestamp, seq] EvGCBegin // GC start [timestamp, seq, stack ID] EvGCEnd // GC done [timestamp, seq] EvGCSweepActive // GC sweep active [timestamp, P ID] EvGCSweepBegin // GC sweep start [timestamp, stack ID] EvGCSweepEnd // GC sweep done [timestamp, swept bytes, reclaimed bytes] EvGCMarkAssistActive // GC mark assist active [timestamp, goroutine ID] EvGCMarkAssistBegin // GC mark assist start [timestamp, stack ID] EvGCMarkAssistEnd // GC mark assist done [timestamp] EvHeapAlloc // gcController.heapLive change [timestamp, heap alloc in bytes] EvHeapGoal // gcController.heapGoal() change [timestamp, heap goal in bytes] // Annotations. EvGoLabel // apply string label to current running goroutine [timestamp, label string ID] EvUserTaskBegin // trace.NewTask [timestamp, internal task ID, internal parent task ID, name string ID, stack ID] EvUserTaskEnd // end of a task [timestamp, internal task ID, stack ID] EvUserRegionBegin // trace.{Start,With}Region [timestamp, internal task ID, name string ID, stack ID] EvUserRegionEnd // trace.{End,With}Region [timestamp, internal task ID, name string ID, stack ID] EvUserLog // trace.Log [timestamp, internal task ID, key string ID, value string ID, stack] // Coroutines. Added in Go 1.23. EvGoSwitch // goroutine switch (coroswitch) [timestamp, goroutine ID, goroutine seq] EvGoSwitchDestroy // goroutine switch and destroy [timestamp, goroutine ID, goroutine seq] EvGoCreateBlocked // goroutine creation (starts blocked) [timestamp, new goroutine ID, new stack ID, stack ID] // GoStatus with stack. Added in Go 1.23. EvGoStatusStack // goroutine status at the start of a generation, with a stack [timestamp, goroutine ID, M ID, status, stack ID] // Batch event for an experimental batch with a custom format. Added in Go 1.23. EvExperimentalBatch // start of extra data [experiment ID, generation, M ID, timestamp, batch length, batch data...] )
Experimental events.
const ( // Experimental heap span events. Added in Go 1.23. EvSpan event.Type // heap span exists [timestamp, id, npages, type/class] EvSpanAlloc // heap span alloc [timestamp, id, npages, type/class] EvSpanFree // heap span free [timestamp, id] // Experimental heap object events. Added in Go 1.23. EvHeapObject // heap object exists [timestamp, id, type] EvHeapObjectAlloc // heap object alloc [timestamp, id, type] EvHeapObjectFree // heap object free [timestamp, id] // Experimental goroutine stack events. Added in Go 1.23. EvGoroutineStack // stack exists [timestamp, id, order] EvGoroutineStackAlloc // stack alloc [timestamp, id, order] EvGoroutineStackFree // stack free [timestamp, id] )
const ( // Various format-specific constants. MaxBatchSize = 64 << 10 MaxFramesPerStack = 128 MaxStringSize = 1 << 10 )
Experiments.
const ( // AllocFree is the alloc-free events experiment. AllocFree event.Experiment = 1 + iota )
func EventString(typ event.Type) string
EventString returns the name of a Go 1.22 event.
func Specs() []event.Spec
type GoStatus uint8
const ( GoBad GoStatus = iota GoRunnable GoRunning GoSyscall GoWaiting )
func (s GoStatus) String() string
type ProcStatus uint8
const ( ProcBad ProcStatus = iota ProcRunning ProcIdle ProcSyscall ProcSyscallAbandoned )
func (s ProcStatus) String() string