openharmony 鸿蒙 capi-trace-h

2026-08-25 浏览 (1)

trace.h

Overview

Defines APIs of the HiTraceMeter and HiTraceChain modules for performance tracing and distributed tracing.
The vertical bar (|) is used as the separator in user-mode trace format. Therefore, the string parameters passed by the HiTraceMeter APIs must exclude this character to avoid trace parsing exceptions.
The maximum length of a user-mode trace is 512 characters. Excess characters will be truncated.

File to include: <hitrace/trace.h>

Library: libhitrace_ndk.z.so

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 10

Related module: HiTrace

Summary

Structs

Nametypedef KeywordDescription
HiTraceIdHiTraceIdDefines a HiTraceId instance.

Enums

Nametypedef KeywordDescription
HiTraceId_ValidHiTraceId_ValidEnumerates whether a HiTraceId instance is valid.
HiTrace_VersionHiTrace_VersionEnumerates the HiTrace versions.
HiTrace_FlagHiTrace_FlagEnumerates the HiTrace flags.
HiTrace_Tracepoint_TypeHiTrace_Tracepoint_TypeEnumerates the trace point types.
HiTrace_Communication_ModeHiTrace_Communication_ModeEnumerates the trace communication types.
HiTrace_Output_LevelHiTrace_Output_LevelEnumerates the HiTrace output levels. The trace output level lower than the threshold does not take effect. The log version threshold is HITRACE_LEVEL_INFO, and the nolog version threshold is HITRACE_LEVEL_COMMERCIAL.

Functions

Nametypedef KeywordDescription
typedef void (*OH_HiTrace_TraceEventListener)(bool traceStatus)OH_HiTrace_TraceEventListenerDefines a callback to listen for whether the trace capture is enabled.
HiTraceId OH_HiTrace_BeginChain(const char *name, int flags)-Starts tracing.
If the current thread's TLS does not contain a valid HiTrace ID, this function generates one, stores it in TLS, and returns it.
If the current thread's TLS already contains a valid HiTrace ID, this function does not start tracing and returns an invalid HiTrace ID with all property values being 0.
void OH_HiTrace_EndChain()-Stops tracing.
Stops tracing and sets the HiTrace ID in the TLS of the current thread to invalid.
HiTraceId OH_HiTrace_GetId()-
Obtains the HiTrace ID in the TLS of the current thread.
void OH_HiTrace_SetId(const HiTraceId *id)-
Sets the given HiTrace ID to the TLS of the current thread. If the given HiTrace ID is invalid, no operation is performed.
void OH_HiTrace_ClearId(void)-
Clears the HiTrace ID in the current thread's TLS.
HiTraceId OH_HiTrace_CreateSpan(void)-Creates a trace span.
Specifically, create a HiTraceId, use the chainId and spanId in the TLS of the current thread to initialize the chainId and parentSpanId of the HiTraceId, generate a new spanId for the HiTraceId, and return the HiTraceId.
void OH_HiTrace_Tracepoint(HiTrace_Communication_Mode mode, HiTrace_Tracepoint_Type type, const HiTraceId *id, const char *fmt, ...)-Adds a trace point for the HiTraceMeter logging.
When type is set to HITRACE_TP_CS and HITRACE_TP_SR, the HiTraceMeter tracing starts. When type is set to HITRACE_TP_CR and HITRACE_TP_SS, the HiTraceMeter tracing ends. When type is set to HITRACE_TP_GENERAL, the HiTraceMeter tracing does not start.
The tracing points of HITRACE_TP_CS and HITRACE_TP_CR must be used in pairs; the tracing points of HITRACE_TP_SR and HITRACE_TP_SS must be used in pairs. Otherwise, the start and end trace points of HiTraceMeter cannot match each other.
void OH_HiTrace_InitId(HiTraceId *id)-Initializes a HiTraceId.
void OH_HiTrace_IdFromBytes(HiTraceId *id, const uint8_t *pIdArray, int len)-Creates a HiTraceId based on a byte array.
bool OH_HiTrace_IsIdValid(const HiTraceId *id)-Checks whether the HiTraceId is valid.
bool OH_HiTrace_IsFlagEnabled(const HiTraceId *id, HiTrace_Flag flag)-Checks whether the trace flag is enabled for the HiTraceId.
void OH_HiTrace_EnableFlag(const HiTraceId *id, HiTrace_Flag flag)-Enables the trace flag specified in HiTraceId.
int OH_HiTrace_GetFlags(const HiTraceId *id)-Obtains the trace flag set in HiTraceId.
void OH_HiTrace_SetFlags(HiTraceId *id, int flags)-Sets the trace flag to HiTraceId.
uint64_t OH_HiTrace_GetChainId(const HiTraceId *id)-Obtains the trace chain ID in HiTraceId.
void OH_HiTrace_SetChainId(HiTraceId *id, uint64_t chainId)-Sets the trace chain ID in HiTraceId.
uint64_t OH_HiTrace_GetSpanId(const HiTraceId *id)-Obtains the span ID in HiTraceId.
void OH_HiTrace_SetSpanId(HiTraceId *id, uint64_t spanId)-Sets the span ID in HiTraceId.
uint64_t OH_HiTrace_GetParentSpanId(const HiTraceId *id)-Obtains the parent span ID in HiTraceId.
void OH_HiTrace_SetParentSpanId(HiTraceId *id, uint64_t parentSpanId)-Sets the ParentSpanId in a HiTraceId instance.
int OH_HiTrace_IdToBytes(const HiTraceId* id, uint8_t* pIdArray, int len)-Converts HiTraceId into a byte array for cache or communication.
void OH_HiTrace_StartTrace(const char *name)-Marks the start of a synchronous trace.
This API is used with OH_HiTrace_FinishTrace() in pairs.
The two APIs can be nested. The stack data structure is used for matching during trace parsing.
Since API version 19, you are advised to use the OH_HiTrace_StartTraceEx() API to specify the trace output level.
void OH_HiTrace_FinishTrace(void)-Marks the end of a synchronous trace.
This API must be used with OH_HiTrace_StartTrace() in pairs. During trace parsing, the system matches it with the latest OH_HiTrace_StartTrace() API in the service process.
Since API version 19, you are advised to use the OH_HiTrace_FinishTraceEx() API to specify the trace output level.
void OH_HiTrace_StartAsyncTrace(const char *name, int32_t taskId)-Marks the start of an asynchronous trace.
This API is used to start tracing before an asynchronous operation. The start and end of an asynchronous trace do not occur in sequence. Therefore, a unique task ID is required to identify them.
It must be used with OH_HiTrace_FinishAsyncTrace() in pairs. The start and end identified by the same name and task ID constitute an asynchronous trace task.
If multiple trace tasks with the same name need to be performed at the same time or a trace task needs to be performed multiple times concurrently, different task IDs must be specified.
If the trace tasks with the same name are not performed at the same time, the same taskId can be used.
Since API version 19, you are advised to use the OH_HiTrace_StartAsyncTraceEx() API to specify the trace output level and category.
void OH_HiTrace_FinishAsyncTrace(const char *name, int32_t taskId)-Marks the end of an asynchronous trace.
This API is called in the callback function after an asynchronous trace is complete.
It is used with OH_HiTrace_StartAsyncTrace() in pairs. Its name and task ID must be the same as those of OH_HiTrace_StartAsyncTrace().
Since API version 19, you are advised to use the OH_HiTrace_FinishAsyncTraceEx() API to specify the trace output level.
void OH_HiTrace_CountTrace(const char *name, int64_t count)-Traces the value change of an integer variable based on its name.
This API can be executed for multiple times to trace the value change of a given integer variable at different time points.
Since API version 19, you are advised to use the OH_HiTrace_CountTraceEx() API to specify the trace output level.
void OH_HiTrace_StartTraceEx(HiTrace_Output_Level level, const char *name, const char *customArgs)-Marks the start of a synchronous trace task with the trace output level specified.
This API is used with OH_HiTrace_FinishTraceEx() in pairs.
The two APIs can be nested. The stack data structure is used for matching during trace parsing.
void OH_HiTrace_FinishTraceEx(HiTrace_Output_Level level)-Marks the end of a synchronous trace task with the trace output level specified.
It must be used with OH_HiTrace_StartTraceEx() in pairs. Its level must be the same as those of OH_HiTrace_StartTraceEx().
During trace data parsing, the system matches it with the OH_HiTrace_StartTraceEx() API recently invoked in the service process.
void OH_HiTrace_StartAsyncTraceEx(HiTrace_Output_Level level, const char *name, int32_t taskId, const char *customCategory, const char *customArgs)-Marks the start of an asynchronous trace task with the trace output level specified.
This API is used to start tracing before an asynchronous operation. The start and end of an asynchronous trace do not occur in sequence. Therefore, a unique task ID is required to identify them.
It is used with OH_HiTrace_FinishAsyncTraceEx() in pairs. The start and end identified by the same name and task ID constitute an asynchronous trace task.
If multiple trace tasks with the same name need to be performed at the same time or a trace task needs to be performed multiple times concurrently, different task IDs must be specified.
If the trace tasks with the same name are not performed at the same time, the same taskId can be used.
Task IDs of different processes does not interfere with each other.
void OH_HiTrace_FinishAsyncTraceEx(HiTrace_Output_Level level, const char *name, int32_t taskId)-Marks the end of an asynchronous trace task with the trace output level specified.
This API is used to stop tracing after an asynchronous operation is complete, for example, in a callback function.
It is used with OH_HiTrace_StartAsyncTraceEx() in pairs. Its level, name and task ID must be the same as those of OH_HiTrace_StartAsyncTraceEx().
void OH_HiTrace_CountTraceEx(HiTrace_Output_Level level, const char *name, int64_t count)-Marks an integer variable trace task with the trace output level specified.
bool OH_HiTrace_IsTraceEnabled(void)-Checks whether trace capture is enabled for an application.
int32_t OH_HiTrace_RegisterTraceListener(OH_HiTrace_TraceEventListener callback)-Registers a callback to notify whether the application trace capture is enabled. This API uses a synchronous callback to return the result.
After the registration is successful, the callback is executed immediately. Subsequent callbacks are executed when the application trace capture status changes.
Callbacks are stored in the application process. A maximum of 10 callbacks can be registered in a process.
If the callback contains time-consuming operations, the registration or unregistration will be blocked (waiting for the callback execution to complete) when the callback is executed.
Therefore, you are advised not to register or unregister callbacks containing time-consuming operations in the main thread of the application to avoid application freeze.
int32_t OH_HiTrace_UnregisterTraceListener(int32_t index)-Unregisters the callback used to notify whether the application trace capture is enabled.
You can use this function to unregister the callback function associated with the callback index returned by OH_HiTrace_RegisterTraceListener.

Enum Description

HiTraceId_Valid

enum HiTraceId_Valid

Description

Enumerates whether a HiTraceId instance is valid.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Enum ItemDescription
HITRACE_ID_INVALID = 0Invalid HiTraceId.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_ID_VALID = 1Valid HiTraceId.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace

HiTrace_Version

enum HiTrace_Version

Description

Enumerates the HiTrace versions.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Enum ItemDescription
HITRACE_VER_1 = 0Version 1.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace

HiTrace_Flag

enum HiTrace_Flag

Description

Enumerates the HiTrace flags.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Enum ItemDescription
HITRACE_FLAG_DEFAULT = 0Default flag.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_INCLUDE_ASYNC = 1 << 0Asynchronous call flag.
When this flag is set, both synchronous and asynchronous calls are traced. By default, only synchronous calls are traced.

Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_DONOT_CREATE_SPAN = 1 << 1No span flag.
When this flag is set, no span information is created. By default, span information is created.

Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_TP_INFO = 1 << 2Trace point flag.
When this flag is set in the debugging scenario, the HiLog logs of the trace point are printed upon calling the OH_HiTrace_Tracepoint() API. By default, the HiLog logs are not printed.

Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_NO_BE_INFO = 1 << 3No begin and end flag.
When this flag is set in the debugging scenario, the HiLog logs about the begin and end of tracing are printed when the OH_HiTrace_BeginChain() and OH_HiTrace_EndChain() APIs are called. By default, the HiLog logs about the begin and end of tracing are not printed.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_DONOT_ENABLE_LOG = 1 << 4Log association flag.
When this flag is set, the HiTraceId information is not added to the HiLog logs. By default, the HiTraceId information is added to the HiLog logs.

Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_FAULT_TRIGGER = 1 << 5Failure trigger flag. This is a reserved flag.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_FLAG_D2D_TP_INFO = 1 << 6Device-to-device trace point flag. It is a subset of HITRACE_FLAG_TP_INFO and is used in debugging scenarios.
When the HITRACE_FLAG_TP_INFO flag is set, the HITRACE_FLAG_D2D_TP_INFO flag does not take effect.
When HITRACE_FLAG_TP_INFO is not set and HITRACE_FLAG_D2D_TP_INFO is set, the HiLog logs of the trace point are printed only when the mode parameter is set to HITRACE_CM_DEVICE upon calling OH_HiTrace_Tracepoint().

Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace

HiTrace_Tracepoint_Type

enum HiTrace_Tracepoint_Type

Description

Enumerates the trace point types.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Enum ItemDescription
HITRACE_TP_CS = 0CS trace point.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_TP_CR = 1CR trace point.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_TP_SS = 2SS trace point.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_TP_SR = 3SR trace point.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_TP_GENERAL = 4General type, which identifies the trace points except HITRACE_TP_CS, HITRACE_TP_CR, HITRACE_TP_SS, and HITRACE_TP_SR.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace

HiTrace_Communication_Mode

enum HiTrace_Communication_Mode

Description

Enumerates the trace communication types.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Enum ItemDescription
HITRACE_CM_DEFAULT = 0Default communication.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_CM_THREAD = 1Inter-thread communication.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_CM_PROCESS = 2Inter-process communication (IPC).
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace
HITRACE_CM_DEVICE = 3Inter-device communication.
Since: 12
System capability: SystemCapability.HiviewDFX.HiTrace

HiTrace_Output_Level

enum HiTrace_Output_Level

Description

Enumerates the HiTrace output levels. The trace output level lower than the threshold does not take effect. The log version threshold is HITRACE_LEVEL_INFO, and the nolog version threshold is HITRACE_LEVEL_COMMERCIAL.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 19

Enum ItemDescription
HITRACE_LEVEL_DEBUG = 0Level used only for debugging, which has the lowest priority.
Since: 19
HITRACE_LEVEL_INFO = 1Level for the log version.
Since: 19
HITRACE_LEVEL_CRITICAL = 2Level for the log version, which has a higher priority than INFO.
Since: 19
HITRACE_LEVEL_COMMERCIAL = 3Level for the nolog version, which has the highest priority.
Since: 19
HITRACE_LEVEL_MAX = HITRACE_LEVEL_COMMERCIALThe maximum output level.
Since: 19

Function Description

OH_HiTrace_TraceEventListener()

typedef void (*OH_HiTrace_TraceEventListener)(bool traceStatus)

Description

Defines a callback to listen for whether the trace capture is enabled.

Since: 22

Parameters

NameDescription
bool traceStatusWhether the trace capture is enabled for the current application.
The value true indicates that the trace capture is enabled, and false indicates the opposite.

OH_HiTrace_BeginChain()

HiTraceId OH_HiTrace_BeginChain(const char *name, int flags)

Description

Starts tracing.
If the current thread's TLS does not contain a valid HiTrace ID, this function generates one, stores it in TLS, and returns it.
If the current thread's TLS already contains a valid HiTrace ID, this function does not start tracing and returns an invalid HiTrace ID with all property values being 0.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const char *nameName of the traced service.
int flagsTrace flags. For details, see HiTrace_Flag.

Returns

TypeDescription
HiTraceIdThe HiTraceId struct.

OH_HiTrace_EndChain()

void OH_HiTrace_EndChain()

Description

Stops tracing.
Stops tracing and sets the HiTrace ID in the TLS of the current thread to invalid.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

OH_HiTrace_GetId()

HiTraceId OH_HiTrace_GetId()

Description


Obtains the HiTrace ID in the TLS of the current thread.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Returns

TypeDescription
HiTraceIdThe HiTraceId struct.

OH_HiTrace_SetId()

void OH_HiTrace_SetId(const HiTraceId *id)

Description


Sets the given HiTrace ID to the TLS of the current thread. If the given HiTrace ID is invalid, no operation is performed.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId to set.

OH_HiTrace_ClearId()

void OH_HiTrace_ClearId(void)

Description


Clears the HiTrace ID in the current thread's TLS.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

OH_HiTrace_CreateSpan()

HiTraceId OH_HiTrace_CreateSpan(void)

Description

Creates a trace span.
Specifically, create a HiTraceId, use the chainId and spanId in the TLS of the current thread to initialize the chainId and parentSpanId of the HiTraceId, generate a new spanId for the HiTraceId, and return the HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Returns

TypeDescription
HiTraceIdThe HiTraceId struct.

OH_HiTrace_Tracepoint()

void OH_HiTrace_Tracepoint(HiTrace_Communication_Mode mode, HiTrace_Tracepoint_Type type, const HiTraceId *id, const char *fmt, ...)

Description

Adds a trace point for the HiTraceMeter logging.
When type is set to HITRACE_TP_CS and HITRACE_TP_SR, the HiTraceMeter tracing starts. When type is set to HITRACE_TP_CR and HITRACE_TP_SS, the HiTraceMeter tracing ends. When type is set to HITRACE_TP_GENERAL, the HiTraceMeter tracing does not start.
The tracing points of HITRACE_TP_CS and HITRACE_TP_CR must be used in pairs; the tracing points of HITRACE_TP_SR and HITRACE_TP_SS must be used in pairs. Otherwise, the start and end trace points of HiTraceMeter cannot match each other.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTrace_Communication_Mode modeTrace communication mode. For details, see HiTrace_Communication_Mode.
HiTrace_Tracepoint_Type typeTrace information type. For details, see HiTrace_Tracepoint_Type.
const HiTraceId *idHiTraceId for implementing trace points.
const char *fmtFormatted string of the trace description information passed by the HiTraceMeter logging.

OH_HiTrace_InitId()

void OH_HiTrace_InitId(HiTraceId *id)

Description

Initializes a HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTraceId *idHiTraceId to initialize.

OH_HiTrace_IdFromBytes()

void OH_HiTrace_IdFromBytes(HiTraceId *id, const uint8_t *pIdArray, int len)

Description

Creates a HiTraceId based on a byte array.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTraceId *idHiTraceId to create.
const uint8_t *pIdArrayByte array.
int lenLength of the byte array.

OH_HiTrace_IsIdValid()

bool OH_HiTrace_IsIdValid(const HiTraceId *id)

Description

Checks whether the HiTraceId is valid.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId to check.

Returns

TypeDescription
boolThe value true indicates that HiTraceId is valid, and false indicates the opposite.

OH_HiTrace_IsFlagEnabled()

bool OH_HiTrace_IsFlagEnabled(const HiTraceId *id, HiTrace_Flag flag)

Description

Checks whether the trace flag is enabled for the HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId to check.
HiTrace_Flag flagTrace flag. For details, see HiTrace_Flag.

Returns

TypeDescription
boolThe value true indicates that the flag is enabled for the HiTraceId, and false indicates the opposite.

OH_HiTrace_EnableFlag()

void OH_HiTrace_EnableFlag(const HiTraceId *id, HiTrace_Flag flag)

Description

Enables the trace flag specified in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId for which the trace flag is enabled.
HiTrace_Flag flagTrace flag. For details, see HiTrace_Flag.

OH_HiTrace_GetFlags()

int OH_HiTrace_GetFlags(const HiTraceId *id)

Description

Obtains the trace flag set in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId for which the trace flag is obtained.

Returns

TypeDescription
intTrace flag set in HiTraceId.

OH_HiTrace_SetFlags()

void OH_HiTrace_SetFlags(HiTraceId *id, int flags)

Description

Sets the trace flag to HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTraceId *idHiTraceId to which the trace flag is set.
int flagsTrace flag. For details, see HiTrace_Flag.

OH_HiTrace_GetChainId()

uint64_t OH_HiTrace_GetChainId(const HiTraceId *id)

Description

Obtains the trace chain ID in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId for which the trace chain ID is obtained.

Returns

TypeDescription
uint64_tTrace chain ID.

OH_HiTrace_SetChainId()

void OH_HiTrace_SetChainId(HiTraceId *id, uint64_t chainId)

Description

Sets the trace chain ID in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTraceId *idHiTraceId to which the trace chain ID is to be set.
uint64_t chainIdTrace chain ID to set.

OH_HiTrace_GetSpanId()

uint64_t OH_HiTrace_GetSpanId(const HiTraceId *id)

Description

Obtains the span ID in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId for which span ID is obtained.

Returns

TypeDescription
uint64_tSpan ID set in HiTraceId.

OH_HiTrace_SetSpanId()

void OH_HiTrace_SetSpanId(HiTraceId *id, uint64_t spanId)

Description

Sets the span ID in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTraceId *idHiTraceId to which the span ID is set.
uint64_t spanIdSpan ID to set.

OH_HiTrace_GetParentSpanId()

uint64_t OH_HiTrace_GetParentSpanId(const HiTraceId *id)

Description

Obtains the parent span ID in HiTraceId.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId *idHiTraceId for which the parent span ID is obtained.

Returns

TypeDescription
uint64_tParent span ID set in HiTraceId.

OH_HiTrace_SetParentSpanId()

void OH_HiTrace_SetParentSpanId(HiTraceId *id, uint64_t parentSpanId)

Description

Sets the ParentSpanId in a HiTraceId instance.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
HiTraceId *idHiTraceId to which the parent span ID is set.
uint64_t parentSpanIdParent span ID to set.

OH_HiTrace_IdToBytes()

int OH_HiTrace_IdToBytes(const HiTraceId* id, uint8_t* pIdArray, int len)

Description

Converts HiTraceId into a byte array for cache or communication.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 12

Parameters

NameDescription
const HiTraceId* idHiTraceId to convert.
uint8_t* pIdArrayByte array.
int lenLength of the byte array.

Returns

TypeDescription
intReturns the length of the byte array after conversion.

OH_HiTrace_StartTrace()

void OH_HiTrace_StartTrace(const char *name)

Description

Marks the start of a synchronous trace.
This API is used with OH_HiTrace_FinishTrace() in pairs.
The two APIs can be nested. The stack data structure is used for matching during trace parsing.
Since API version 19, you are advised to use the OH_HiTrace_StartTraceEx() API to specify the trace output level.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 10

Parameters

NameDescription
const char *nameName of a synchronous trace.

OH_HiTrace_FinishTrace()

void OH_HiTrace_FinishTrace(void)

Description

Marks the end of a synchronous trace.
This API must be used with OH_HiTrace_StartTrace() in pairs. During trace parsing, the system matches it with the latest OH_HiTrace_StartTrace() API in the service process.
Since API version 19, you are advised to use the OH_HiTrace_FinishTraceEx() API to specify the trace output level.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 10

OH_HiTrace_StartAsyncTrace()

void OH_HiTrace_StartAsyncTrace(const char *name, int32_t taskId)

Description

Marks the start of an asynchronous trace.
This API is used to start tracing before an asynchronous operation. The start and end of an asynchronous trace do not occur in sequence. Therefore, a unique task ID is required to identify them.
It must be used with OH_HiTrace_FinishAsyncTrace() in pairs. The start and end identified by the same name and task ID constitute an asynchronous trace task.
If multiple trace tasks with the same name need to be performed at the same time or a trace task needs to be performed multiple times concurrently, different task IDs must be specified.
If the trace tasks with the same name are not performed at the same time, the same taskId can be used.
Since API version 19, you are advised to use the OH_HiTrace_StartAsyncTraceEx() API to specify the trace output level and category.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 10

Parameters

NameDescription
const char *nameName of the asynchronous trace.
int32_t taskIdID of the asynchronous trace. The start and end of an asynchronous trace do not occur in sequence. Therefore, the start and end of an asynchronous trace need to be matched based on the task name and the unique task ID together.

OH_HiTrace_FinishAsyncTrace()

void OH_HiTrace_FinishAsyncTrace(const char *name, int32_t taskId)

Description

Marks the end of an asynchronous trace.
This API is called in the callback function after an asynchronous trace is complete.
It is used with OH_HiTrace_StartAsyncTrace() in pairs. Its name and task ID must be the same as those of OH_HiTrace_StartAsyncTrace().
Since API version 19, you are advised to use the OH_HiTrace_FinishAsyncTraceEx() API to specify the trace output level.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 10

Parameters

NameDescription
const char *nameName of the asynchronous trace.
int32_t taskIdID of the asynchronous trace. The start and end of an asynchronous trace do not occur in sequence. Therefore, the start and end of an asynchronous trace need to be matched based on the task name and the unique task ID together.

OH_HiTrace_CountTrace()

void OH_HiTrace_CountTrace(const char *name, int64_t count)

Description

Traces the value change of an integer variable based on its name.
This API can be executed for multiple times to trace the value change of a given integer variable at different time points.
Since API version 19, you are advised to use the OH_HiTrace_CountTraceEx() API to specify the trace output level.

System capability: SystemCapability.HiviewDFX.HiTrace

Since: 10

Parameters

NameDescription
const char *nameName of the integer variable. It does not need to be the same as the real variable name.
int64_t countInteger value.

OH_HiTrace_StartTraceEx()

void OH_HiTrace_StartTraceEx(HiTrace_Output_Level level, const char *name, const char *customArgs)

Description

Marks the start of a synchronous trace task with the trace output level specified.
This API is used with OH_HiTrace_FinishTraceEx() in pairs.
The two APIs can be nested. The stack data structure is used for matching during trace parsing.

Since: 19

Parameters

NameDescription
HiTrace_Output_Level levelTrace output level.
const char *nameName of a synchronous trace.
const char *customArgsKey-value pair. Use commas (,) to separate multiple key-value pairs, for example, "key1=value1,key2=value2".

OH_HiTrace_FinishTraceEx()

void OH_HiTrace_FinishTraceEx(HiTrace_Output_Level level)

Description

Marks the end of a synchronous trace task with the trace output level specified.
It must be used with OH_HiTrace_StartTraceEx() in pairs. Its level must be the same as those of OH_HiTrace_StartTraceEx().
During trace data parsing, the system matches it with the OH_HiTrace_StartTraceEx() API recently invoked in the service process.

Since: 19

Parameters

NameDescription
HiTrace_Output_Level levelTrace output level.

OH_HiTrace_StartAsyncTraceEx()

void OH_HiTrace_StartAsyncTraceEx(HiTrace_Output_Level level, const char *name, int32_t taskId, const char *customCategory, const char *customArgs)

Description

Marks the start of an asynchronous trace task with the trace output level specified.
This API is used to start tracing before an asynchronous operation. The start and end of an asynchronous trace do not occur in sequence. Therefore, a unique task ID is required to identify them.
It is used with OH_HiTrace_FinishAsyncTraceEx() in pairs. The start and end identified by the same name and task ID constitute an asynchronous trace task.
If multiple trace tasks with the same name need to be performed at the same time or a trace task needs to be performed multiple times concurrently, different task IDs must be specified.
If the trace tasks with the same name are not performed at the same time, the same taskId can be used.
Task IDs of different processes does not interfere with each other.

Since: 19

Parameters

NameDescription
HiTrace_Output_Level levelTrace output level.
const char *nameName of the asynchronous trace.
int32_t taskIdID of the asynchronous trace.
const char *customCategoryCustom category name, which is used to collect asynchronous trace data of the same type.
const char *customArgsKey-value pair. Use commas (,) to separate multiple key-value pairs, for example, "key1=value1,key2=value2".

OH_HiTrace_FinishAsyncTraceEx()

void OH_HiTrace_FinishAsyncTraceEx(HiTrace_Output_Level level, const char *name, int32_t taskId)

Description

Marks the end of an asynchronous trace task with the trace output level specified.
This API is used to stop tracing after an asynchronous operation is complete, for example, in a callback function.
It is used with OH_HiTrace_StartAsyncTraceEx() in pairs. Its level, name and task ID must be the same as those of OH_HiTrace_StartAsyncTraceEx().

Since: 19

Parameters

NameDescription
HiTrace_Output_Level levelTrace output level.
const char *nameName of the asynchronous trace.
int32_t taskIdID of the asynchronous trace.

OH_HiTrace_CountTraceEx()

void OH_HiTrace_CountTraceEx(HiTrace_Output_Level level, const char *name, int64_t count)

Description

Marks an integer variable trace task with the trace output level specified.

Since: 19

Parameters

NameDescription
HiTrace_Output_Level levelTrace output level.
const char *nameName of the integer variable. It does not need to be the same as the actual variable name.
int64_t countInteger value.

OH_HiTrace_IsTraceEnabled()

bool OH_HiTrace_IsTraceEnabled(void)

Description

Checks whether trace capture is enabled for an application.

Since: 19

Returns

TypeDescription
boolWhen it is enabled, true is returned;
when it is disabled or stopped, false is returned. In this case, calling the HiTraceMeter API does not take effect.

OH_HiTrace_RegisterTraceListener()

int32_t OH_HiTrace_RegisterTraceListener(OH_HiTrace_TraceEventListener callback)

Description

Registers a callback to notify whether the application trace capture is enabled. This API uses a synchronous callback to return the result.

After the registration is successful, the callback is executed immediately. Subsequent callbacks are executed when the application trace capture status changes.

Callbacks are stored in the application process. A maximum of 10 callbacks can be registered in a process.

If the callback contains time-consuming operations, the registration or unregistration will be blocked (waiting for the callback execution to complete) when the callback is executed.

Therefore, you are advised not to register or unregister callbacks containing time-consuming operations in the main thread of the application to avoid application freeze.

Since: 22

Parameters

NameDescription
OH_HiTrace_TraceEventListener callbackRegistered callback.

Returns

TypeDescription
int32_tCallback registration status.
>= 0: The registration is successful. The callback index for unregistration is returned. The index ranges from 0 to 9.
-1: The maximum number of callbacks has been reached.
-2: Invalid parameter. The parameter is not of the TraceEventListener type.

OH_HiTrace_UnregisterTraceListener()

int32_t OH_HiTrace_UnregisterTraceListener(int32_t index)

Description

Unregisters the callback used to notify whether the application trace capture is enabled.
You can use this function to unregister the callback function associated with the callback index returned by OH_HiTrace_RegisterTraceListener.

Since: 22

Parameters

NameDescription
int32_t indexIndex of the registered callback.

Returns

TypeDescription
int32_tCallback unregistration status.
0: Unregistration succeeded.
-1: The callback corresponding to the index is not registered.
-2: Invalid index. The index value is not within the range of 0 to 9.

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 js-apis-hiviewdfx-FaultLogExtensionAbility

openharmony 鸿蒙 capi-log-h

openharmony 鸿蒙 errorcode-hisysevent-sys

openharmony 鸿蒙 capi-hitrace-hitraceid

openharmony 鸿蒙 capi-hidebug-hidebug-threadcpuusage

openharmony 鸿蒙 js-apis-loglibrary-sys

openharmony 鸿蒙 capi-hiappevent-h

openharmony 鸿蒙 capi-hidebug-hidebug-jsstackframe

openharmony 鸿蒙 capi-hitrace

openharmony 鸿蒙 capi-hiappevent-param-h

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/JGzLy7GC