= Execution trace
An <execution trace> records the ordered steps or observations of one program execution under a chosen observation model. It might record machine <machine instructions>[instructions], <state> changes, procedure calls or visible <CSP events>[communication events]. The model determines what is hidden; two traces cannot be compared meaningfully without knowing their event vocabulary.
For two <thread (computing)>[threads] each incrementing a shared counter, a trace can record both reading zero before either writes one. Its final counter value is one even though two increments were requested. A different <thread interleaving>[interleaving] can produce two. One observed successful trace therefore does not establish correctness of all permitted <thread interleavings>[interleavings]. In <communicating sequential processes>, a trace conventionally records visible <CSP events>; internal transitions are omitted. Such a trace records what occurred but does not by itself say which unperformed events were available.
Back to article page