Namespaces

Enumerations

enum class BufferDisposition : uint8_t
Name Value Comments
CLEAR_ENTIRE 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.

CLEAR_NONDURABLE 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.

RETAIN 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 24 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/hlcpp/fuchsia/tracing/cpp/fidl.h

enum class BufferingMode : uint8_t
Name Value Comments
ONESHOT 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.

CIRCULAR 2u

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

STREAMING 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 57 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/hlcpp/fuchsia/tracing/cpp/fidl.h

Records

Functions

  • zx_status_t Clone (::fuchsia::tracing::BufferDisposition value, ::fuchsia::tracing::BufferDisposition * result)

    Defined at line 50 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/hlcpp/fuchsia/tracing/cpp/fidl.h

  • zx_status_t Clone (::fuchsia::tracing::BufferingMode value, ::fuchsia::tracing::BufferingMode * result)

    Defined at line 79 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/hlcpp/fuchsia/tracing/cpp/fidl.h

  • zx_status_t Clone (const ::fuchsia::tracing::KnownCategory & _value, ::fuchsia::tracing::KnownCategory * _result)

    Defined at line 127 of file fidling/gen/sdk/fidl/fuchsia.tracing/fuchsia.tracing/hlcpp/fuchsia/tracing/cpp/fidl.h