8. PopVision trace instrumentation library (PVTI)¶
PVTI API.
-
namespace
pvti
¶ TraceChannels
PVTI library predefined trace categories.
These predefined channels can be enabled or disabled at runtime. Tracepoints can be created using these channels, or custom channels can be added.
-
TraceChannel
traceDrivers
¶
-
TraceChannel
tracePoplar
¶
-
TraceChannel
traceFramework
¶
Typedefs
-
typedef struct pvti::TraceChannel
TraceChannel
¶ PVTI trace categories type definition.
Use for defining custom channels.
Functions
-
void
enableTraceChannel
(TraceChannel *channel)¶ Enable tracing channel for the session.
PVTI_OPTIONS
environment variable must be set, and trace enabled. See “Configuring trace options” for more information.- Parameters
channel
: A pointer to the channel to be enabled.
-
void
disableTraceChannel
(TraceChannel *channel)¶ Disable tracing channel for the session.
- Parameters
channel
: A pointer to the channel to be disabled.
-
bool
checkTraceChannel
(TraceChannel *channel)¶ Check if tracing channel is enabled.
- Return
True if the channel is enabled, false if it is disabled.
- Parameters
channel
: A pointer to the channel to check.
-
std::vector<TraceChannel*>
listTraceChannel
(void)¶ Get a list of all traceChannels in the session.
- Return
A vector of pointers to the traceChannels in the session.
-
std::string
getCurrentTraceFilename
(void)¶ Get the current trace session filename.
- Return
The current trace session filename.
-
void
closeTrace
()¶ Close the current trace session.
No Tracepoint events should be invoked following this function call.
-
struct
TraceChannel
- #include <pvti.hpp>
PVTI trace categories type definition.
Use for defining custom channels.
Public Functions
-
TraceChannel
(const char *name, bool enabled = true)¶ Construct a TraceChannel object, and add it to the current session.
- Parameters
name
: The channel name.enabled
: Set this to true to enable the channel when it is declared. enableTraceChannel() and disableTraceChannel() can be used to enable or disable channels at runtime.
-
-
class
Tracepoint
¶ - #include <pvti.hpp>
Class for managing tracing of events.
Public Functions
-
Tracepoint
(TraceChannel *traceChannel, const std::string traceLabel)¶ Profile a function or a scope by creating a named stack object of Tracepoint type.
- Parameters
traceChannel
: The channel to create the tracepoint fortraceLabel
: A unique user-friendly string for this scope’s trace.
-
Tracepoint
(TraceChannel *traceChannel, const char *traceLabel, const int32_t traceLabelLen = -1)¶ Profile a function or a scope by creating a named stack object of Tracepoint type.
- Parameters
traceChannel
: The channel to create the tracepoint for.traceLabel
: A unique user-friendly string for this scope’s trace.traceLabelLen
: The number of characters to use from thetraceLabel
(-1 indicates all).
-
~Tracepoint
()¶ Invoked on Tracepoint function exit.
-
Tracepoint
(const Tracepoint&) = delete¶
-
Tracepoint &
operator=
(const Tracepoint&) = delete¶
Public Static Functions
-
void
begin
(TraceChannel *traceChannel, const std::string traceLabel)¶ Start profiling a region using this function.
Should be complemented with an end() to profile between the two.
- Parameters
traceChannel
: The channel to create tracepoints for.traceLabel
: A unique user-friendly string for this region’s trace.
-
void
begin
(TraceChannel *traceChannel, const char *traceLabel, const int32_t traceLabelLen = -1)¶ Start profiling a region using this function.
Should be complemented with with an end() to profile between the two.
- Parameters
traceChannel
: The channel to create tracepoints for.traceLabel
: A unique user-friendly string for this region’s trace.traceLabelLen
: The number of characters to use from thetraceLabel
(-1 indicates all).
-
void
end
(TraceChannel *traceChannel, const std::string traceLabel)¶ End profiling a region using this function.
Should be the complement to a begin() to profile between the two.
- Parameters
traceChannel
: The channel to create tracepoints for.traceLabel
: A unique user-friendly string for this region’s trace.
-
void
end
(TraceChannel *traceChannel, const char *traceLabel, const int32_t traceLabelLen = -1)¶ End profiling a region using this function.
Should be the complement to a begin() to profile between the two.
- Parameters
traceChannel
: The channel to create tracepoints for.traceLabel
: A unique user-friendly string for this region’s trace.traceLabelLen
: The number of characters to use from thetraceLabel
(-1 indicates all).
-
void
event
(TraceChannel *traceChannel, const std::string traceLabel)¶ Mark an occurrence to be instrumented.
Can be used to compute duration between two events of the same or different type.
- Parameters
traceChannel
: The channel to create tracepoints for.traceLabel
: A unique user-friendly string for this event.
-
void
event
(TraceChannel *traceChannel, const char *traceLabel, const int32_t len = -1)¶ Mark an occurrence to be instrumented.
Can be used to compute duration between two events of same or different type.
- Parameters
traceChannel
: The channel to create tracepoints for.traceLabel
: A unique user-friendly string for this event.traceLabelLen
: The number of characters to use from thetraceLabel
(-1 indicates all).
-
-
TraceChannel