Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ArgTypes = [...]string{
"seq",
"pstatus",
"gstatus",
"g",
"m",
"p",
"string",
"stack",
"value",
"task",
}
ArgTypes is a list of valid argument types for use in Args.
See the documentation of Args for more details.
View Source
var UserGoReqs = SchedReqs{Thread: MustHave, Proc: MustHave, Goroutine: MustHave}
UserGoReqs is a common requirement among events that are running or are close to running user code.
Functions ¶
Types ¶
type Constraint ¶
type Constraint uint8
Constraint represents a various presence requirements.
const ( MustNotHave Constraint = iota MayHave MustHave )
type Experiment ¶
type Experiment uint
Experiment is an experiment ID that events may be associated with.
const NoExperiment Experiment = 0
NoExperiment is the reserved ID 0 indicating no experiment.
type SchedReqs ¶
type SchedReqs struct { Thread Constraint Proc Constraint Goroutine Constraint }
SchedReqs is a set of constraints on what the scheduling context must look like.
type Spec ¶
type Spec struct { // Name is the human-readable name of the trace event. Name string // Args contains the names of each trace event's argument. // Its length determines the number of arguments an event has. // // Argument names follow a certain structure and this structure // is relied on by the testing framework to type-check arguments. // The structure is is: // // (?P<name>[A-Za-z]+_)?(?P<type>[A-Za-z]+) // // In sum, it's an optional name followed by a type. If the name // is present, it is separated from the type with an underscore. // The valid argument types and the Go types they map to are listed // in the ArgTypes variable. Args []string // StringIDs indicates which of the arguments are string IDs. StringIDs []int // StackIDs indicates which of the arguments are stack IDs. // // The list is not sorted. The first index always refers to // the main stack for the current execution context of the event. StackIDs []int // StartEv indicates the event type of the corresponding "start" // event, if this event is an "end," for a pair of events that // represent a time range. StartEv Type // IsTimedEvent indicates whether this is an event that both // appears in the main event stream and is surfaced to the // trace reader. // // Events that are not "timed" are considered "structural" // since they either need significant reinterpretation or // otherwise aren't actually surfaced by the trace reader. IsTimedEvent bool // HasData is true if the event has trailer consisting of a // varint length followed by unencoded bytes of some data. // // An event may not be both a timed event and have data. HasData bool // IsStack indicates that the event represents a complete // stack trace. Specifically, it means that after the arguments // there's a varint length, followed by 4*length varints. Each // group of 4 represents the PC, file ID, func ID, and line number // in that order. IsStack bool // Experiment indicates the ID of an experiment this event is associated // with. If Experiment is not NoExperiment, then the event is experimental // and will be exposed as an EventExperiment. Experiment Experiment }
Spec is a specification for a trace event. It contains sufficient information to perform basic parsing of any trace event for any version of Go.
Click to show internal directories.
Click to hide internal directories.