Expand description
The Tracy Client and its low level API
This crate embeds the C++ Tracy client library and exposes its API. For a higher-level API
consider the tracy-client
crate.
§Important note
Depending on the configuration Tracy may broadcast discovery packets to the local network and expose the data it collects in the background to that same network. Traces collected by Tracy may include source and assembly code as well.
As thus, you may want make sure to only enable the tracy-client-sys
crate conditionally, via
the enable
feature flag provided by this crate.
In order to start tracing it is important that you first call the ___tracy_startup_profiler
function first to initialize the client. The ___tracy_shutdown_profiler
must not be called
until it is guaranteed that there will be no more calls to any other Tracy APIs. This can be
especially difficult to ensure if you have detached threads.
§Features
The following crate features are provided to customize the functionality of the Tracy client:
manual-lifetime
– disables Tracy’s life-before-main initialization, requiring manual initialization. Corresponds to theTRACY_MANUAL_LIFETIME
define.delayed-init
– profiler data is gathered into one structure and initialized on the first request rather than statically at the DLL load at the expense of atomic load on each request to the profiler data. Corresponds to theTRACY_DELAYED_INIT
define.enable
– enables the Tracy client. Corresponds to theTRACY_ENABLE
define.flush-on-exit
– waits for Tracy to connect and read out the profiling data before the program terminates. Corresponds to theTRACY_NO_EXIT
define. Does not work in combination with themanual-lifetime
feature.manual-lifetime
– allow for manual initialization and deinitialization of the profiler data structures. Corresponds to theTRACY_MANUAL_LIFETIME
define.tracy_client::Client
transparently switches to manual lifetime management when this feature is enabled. Impliesdelayed-init
.system-tracing
– enable capture of system level details. Corresponds to theTRACY_NO_SYSTEM_TRACING
define.context-switch-tracing
– enable capture of the context switch data. Corresponds to theTRACY_NO_CONTEXT_SWITCH
define.sampling
– enable periodic sampling of the call stack. Corresponds to theTRACY_NO_SAMPLING
define.code-transfer
– enable transfer of the machine code to the profiler. Corresponds to theTRACY_NO_CODE_TRANSFER
define.broadcast
– announce presence of the client to the profilers on the local network. Corresponds to theTRACY_NO_BROADCAST
define.only-localhost
– listen for profilers on the localhost interface only. Corresponds to theTRACY_ONLY_LOCALHOST
define.only-ipv4
– listen for profilers on IPv4 interfaces only. Corresponds to theTRACY_ONLY_IPV4
define.timer-fallback
– allow running on devices without a high resolution timer support. Corresponds to theTRACY_TIMER_FALLBACK
define.ondemand
– start collecting traces only when a server connects to the client. Corresponds to theTRACY_ON_DEMAND
define.fibers
– enable support for instrumenting fibers, coroutines and similar such asynchrony primitives. Corresponds to theTRACY_FIBERS
define.callstack-inlines
- enables resolution of inline frames for call stacks. Disabling it will make the profiler use the basic but much faster frame resolution mode. Corresponds to theTRACY_NO_CALLSTACK_INLINES
define.delayed-init
– initializes trace structures upon a first request, rather than at load time. Corresponds to theTRACY_DELAYED_INIT
define.demangle
- requires that the demangling function be defined by the user. See theregister_demangler!
macro for more details. Corresponds to theTRACY_DEMANGLE
define.verify
- enables verification that instrumentation is well formed. Enabling this introduces additional instrumentation overhead (~50% for 0 callstack depth spans.) When disabled corresponds to theTRACY_NO_VERIFY
define.debuginfod
- enables debuginfo for system libraries on systems supporting debuginfod. Corresponds to theTRACY_DEBUGINFOD
define.
Refer to this package’s Cargo.toml
for the list of the features enabled by default. Refer to
the Tracy
manual for more information on the implications of each feature.
Structs§
- ___
tracy_ c_ zone_ context enable
- ___
tracy_ gpu_ time_ data enable
Constants§
Functions§
- ___
tracy_ ⚠alloc_ srcloc enable
- ___
tracy_ ⚠alloc_ srcloc_ name enable
- ___
tracy_ ⚠connected enable
- ___
tracy_ ⚠emit_ frame_ image enable
- ___
tracy_ ⚠emit_ frame_ mark enable
- ___
tracy_ ⚠emit_ frame_ mark_ end enable
- ___
tracy_ ⚠emit_ gpu_ time enable
- ___
tracy_ ⚠emit_ gpu_ time_ sync enable
- ___
tracy_ ⚠emit_ gpu_ zone_ begin enable
- ___
tracy_ ⚠emit_ gpu_ zone_ end enable
- ___
tracy_ ⚠emit_ memory_ alloc enable
- ___
tracy_ ⚠emit_ memory_ free enable
- ___
tracy_ ⚠emit_ message enable
- ___
tracy_ ⚠emit_ messageC enable
- ___
tracy_ ⚠emit_ messageL enable
- ___
tracy_ ⚠emit_ messageLC enable
- ___
tracy_ ⚠emit_ plot enable
- ___
tracy_ ⚠emit_ plot_ config enable
- ___
tracy_ ⚠emit_ plot_ float enable
- ___
tracy_ ⚠emit_ plot_ int enable
- ___
tracy_ ⚠emit_ zone_ begin enable
- ___
tracy_ ⚠emit_ zone_ color enable
- ___
tracy_ ⚠emit_ zone_ end enable
- ___
tracy_ ⚠emit_ zone_ name enable
- ___
tracy_ ⚠emit_ zone_ text enable
- ___
tracy_ ⚠emit_ zone_ value enable
- ___
tracy_ ⚠fiber_ enter enable
andfibers
- ___
tracy_ ⚠fiber_ leave enable
andfibers
- ___
tracy_ ⚠mark_ lockable_ ctx enable
- ___
tracy_ ⚠set_ thread_ name enable
- ___
tracy_ ⚠shutdown_ profiler enable
andmanual-lifetime
- ___
tracy_ ⚠startup_ profiler enable
andmanual-lifetime