Namespaces

Enumerations

enum class BufferDisposition : uint8_t
Name Value Comments
kClearEntire 1u

Clear the entire buffer, including durable buffer contents.
N.B. If this is done mid-session, then string and thread references
from prior to this point will become invalid - the underlying data
will be gone. To prevent this save buffer contents before clearing.

This is typically used when buffer contents were saved after the
preceding Stop.

kClearNondurable 2u

Clear the non-durable portion of the buffer, retaining the durable
portion.

This is typically used when buffer contents were not saved after the
preceding Stop and the current contents are to be discarded.

kRetain 3u

Retain buffer contents. New trace data is added where the previous
trace run left off.

This is typically used when buffer contents were not saved after the
preceding Stop and the current contents are to be retained.

Choices for clearing/retaining trace buffer contents at Start.

A brief summary of buffer contents:

The trace buffer is divided into two main pieces: durable and non-durable.

The durable portion contains things like the string and thread data for

their respective references (trace_encoded_string_ref_t and

trace_encoded_thread_ref_t). The non-durable portion contains the rest of

the trace data like events); this is the portion that, for example, is

discarded in circular buffering mode when the (non-durable) buffer fills.

Defined at line 25 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/cpp/fidl/fuchsia.tracing/cpp/common_types.h

enum class BufferingMode : uint8_t
Name Value Comments
kOneshot 1u

In oneshot mode there is only one buffer that is not reused. When the
buffer fills the provider just keeps dropping records, keeping a count,
and then when tracing stops the header is updated to record final
state.

kCircular 2u

In circular mode, the buffer is continually written to until tracing
stops. When the buffer fills older records are discarded as needed.

kStreaming 3u

In streaming mode, the buffer is effectively split into two pieces.
When one half of the buffer fills the provider notifies the trace
manager via the provided fifo, and then starts filling the other half
of the buffer. When the buffer is saved, the manager responds via the
provided fifo. If trace manager hasn't saved the buffer in time, and
the other buffer fills, then the provider is required to drop records
until space becomes available.

The trace buffering mode.

Defined at line 62 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/cpp/fidl/fuchsia.tracing/cpp/common_types.h

Records