HiDebug
Overview
Provides APIs for debugging.
You can use the APIs to obtain CPU usage, memory information, heap information, and capture traces.
Since: 12
Summary
Files
| Name | Description |
|---|---|
| hidebug.h | Defines the APIs for debugging. |
| hidebug_type.h | Defines the structs of the HiDebug module. |
Structs
| Name | Description |
|---|---|
| struct HiDebug_ThreadCpuUsage | Defines the CPU usage of all threads of an application. |
| struct HiDebug_SystemMemInfo | Defines the system memory information. |
| struct HiDebug_NativeMemInfo | Defines the local memory information of an application process. |
| struct HiDebug_MemoryLimit | Defines the memory limit of an application process. |
Macros
| Name | Description |
|---|---|
| HIDEBUG_TRACE_TAG_FFRT (1ULL << 13) | Indicates the FFRT task. |
| HIDEBUG_TRACE_TAG_COMMON_LIBRARY (1ULL << 16) | Indicates the common library subsystem. |
| HIDEBUG_TRACE_TAG_HDF (1ULL << 18) | Indicates the HDF subsystem. |
| HIDEBUG_TRACE_TAG_NET (1ULL << 23) | Indicates the network. |
| HIDEBUG_TRACE_TAG_NWEB (1ULL << 24) | Indicates the NWeb. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO (1ULL << 27) | Indicates the distributed audio. |
| HIDEBUG_TRACE_TAG_FILE_MANAGEMENT (1ULL << 29) | Indicates the file management. |
| HIDEBUG_TRACE_TAG_OHOS (1ULL << 30) | Indicates the OpenHarmony OS. |
| HIDEBUG_TRACE_TAG_ABILITY_MANAGER (1ULL << 31) | Indicates the ability manager. |
| HIDEBUG_TRACE_TAG_CAMERA (1ULL << 32) | Indicates the camera module. |
| HIDEBUG_TRACE_TAG_MEDIA (1ULL << 33) | Indicates the media module. |
| HIDEBUG_TRACE_TAG_IMAGE (1ULL << 34) | Indicates the image module. |
| HIDEBUG_TRACE_TAG_AUDIO (1ULL << 35) | Indicates the audio module. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA (1ULL << 36) | Indicates the distributed data management. |
| HIDEBUG_TRACE_TAG_GRAPHICS (1ULL << 38) | Indicates the graphics module. |
| HIDEBUG_TRACE_TAG_ARKUI (1ULL << 39) | Indicates the ArkUI development framework. |
| HIDEBUG_TRACE_TAG_NOTIFICATION (1ULL << 40) | Indicates the notification module. |
| HIDEBUG_TRACE_TAG_MISC (1ULL << 41) | Indicates the MISC module. |
| HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT (1ULL << 42) | Indicates the multimodal input module. |
| HIDEBUG_TRACE_TAG_RPC (1ULL << 46) | Indicates the RPC. |
| HIDEBUG_TRACE_TAG_ARK (1ULL << 47) | Indicates the JSVM. |
| HIDEBUG_TRACE_TAG_WINDOW_MANAGER (1ULL << 48) | Indicates the window manager. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN (1ULL << 50) | Indicates the distributed screen. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA (1ULL << 51) | Indicates the distributed camera. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK (1ULL << 52) | Indicates the distributed hardware framework. |
| HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER (1ULL << 53) | Indicates the global resource manager. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER (1ULL << 54) | Indicates the distributed hardware device manager. |
| HIDEBUG_TRACE_TAG_SAMGR (1ULL << 55) | Indicates the service ability manager (SAMGR). |
| HIDEBUG_TRACE_TAG_POWER_MANAGER (1ULL << 56) | Indicates the power manager. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER (1ULL << 57) | Indicates the distributed scheduler. |
| HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT (1ULL << 59) | Indicates the distributed input. |
| HIDEBUG_TRACE_TAG_BLUETOOTH (1ULL << 60) | Indicates the Bluetooth. |
Types
| Name | Description |
|---|---|
| typedef enum HiDebug_ErrorCode HiDebug_ErrorCode | Defines an enum for error codes. |
| typedef struct HiDebug_ThreadCpuUsage HiDebug_ThreadCpuUsage | Defines a struct for the CPU usage of all threads of an application. |
| typedef HiDebug_ThreadCpuUsage * HiDebug_ThreadCpuUsagePtr | Defines the pointer to HiDebug_ThreadCpuUsage. |
| typedef struct HiDebug_SystemMemInfo HiDebug_SystemMemInfo | Defines a struct for the system memory information. |
| typedef struct HiDebug_NativeMemInfo HiDebug_NativeMemInfo | Defines a struct for the local memory information of the application process. |
| typedef struct HiDebug_MemoryLimit HiDebug_MemoryLimit | Defines a struct for the memory limit of an application process. |
| typedef enum HiDebug_TraceFlag HiDebug_TraceFlag | Defines an enum for the types of threads for trace collection. |
Enums
| Name | Description |
|---|---|
| HiDebug_ErrorCode { HIDEBUG_SUCCESS = 0, HIDEBUG_INVALID_ARGUMENT = 401, HIDEBUG_TRACE_CAPTURED_ALREADY = 11400102, HIDEBUG_NO_PERMISSION = 11400103, HIDEBUG_TRACE_ABNORMAL = 11400104, HIDEBUG_NO_TRACE_RUNNING = 11400105 } |
Enumerates the error codes used in the HiDebug module. |
| HiDebug_TraceFlag { HIDEBUG_TRACE_FLAG_MAIN_THREAD = 1, HIDEBUG_TRACE_FLAG_ALL_THREADS = 2 } |
Enumerates the types of the threads for trace collection. |
Functions
| Name | Description |
|---|---|
| double OH_HiDebug_GetSystemCpuUsage () | Obtains the CPU usage of the system. |
| double OH_HiDebug_GetAppCpuUsage () | Obtains the CPU usage of an application. |
| HiDebug_ThreadCpuUsagePtr OH_HiDebug_GetAppThreadCpuUsage () | Obtains the CPU usage of all threads of an application. |
| void OH_HiDebug_FreeThreadCpuUsage (HiDebug_ThreadCpuUsagePtr *threadCpuUsage) | Releases the HiDebug_ThreadCpuUsagePtr. |
| void OH_HiDebug_GetSystemMemInfo (HiDebug_SystemMemInfo *systemMemInfo) | Obtains system memory information. |
| void OH_HiDebug_GetAppNativeMemInfo (HiDebug_NativeMemInfo *nativeMemInfo) | Obtains the memory information of an application process. |
| void OH_HiDebug_GetAppMemoryLimit (HiDebug_MemoryLimit *memoryLimit) | Obtains the memory limit of an application process. |
| HiDebug_ErrorCode OH_HiDebug_StartAppTraceCapture (HiDebug_TraceFlag flag, uint64_t tags, uint32_t limitSize, char *fileName, uint32_t length) | Starts application trace collection. |
| HiDebug_ErrorCode OH_HiDebug_StopAppTraceCapture () | Stops application trace collection. |
Macro Description
HIDEBUG_TRACE_TAG_ABILITY_MANAGER
#define HIDEBUG_TRACE_TAG_ABILITY_MANAGER (1ULL << 31)
Description
Indicates the ability manager.
Since: 12
HIDEBUG_TRACE_TAG_ARK
#define HIDEBUG_TRACE_TAG_ARK (1ULL << 47)
Description
Indicates the JSVM.
Since: 12
HIDEBUG_TRACE_TAG_ARKUI
#define HIDEBUG_TRACE_TAG_ARKUI (1ULL << 39)
Description
Indicates the ArkUI development framework.
Since: 12
HIDEBUG_TRACE_TAG_AUDIO
#define HIDEBUG_TRACE_TAG_AUDIO (1ULL << 35)
Description
Indicates the audio module.
Since: 12
HIDEBUG_TRACE_TAG_BLUETOOTH
#define HIDEBUG_TRACE_TAG_BLUETOOTH (1ULL << 60)
Description
Indicates the Bluetooth.
Since: 12
HIDEBUG_TRACE_TAG_CAMERA
#define HIDEBUG_TRACE_TAG_CAMERA (1ULL << 32)
Description
Indicates the camera module.
Since: 12
HIDEBUG_TRACE_TAG_COMMON_LIBRARY
#define HIDEBUG_TRACE_TAG_COMMON_LIBRARY (1ULL << 16)
Description
Indicates the common library subsystem.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO (1ULL << 27)
Description
Indicates the distributed audio.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA (1ULL << 51)
Description
Indicates the distributed camera.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA (1ULL << 36)
Description
Indicates the distributed data management.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER (1ULL << 54)
Description
Indicates the distributed hardware device manager.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK (1ULL << 52)
Description
Indicates the distributed hardware framework.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT (1ULL << 59)
Description
Indicates the distributed input.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER (1ULL << 57)
Description
Indicates the distributed scheduler.
Since: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN (1ULL << 50)
Description
Indicates the distributed screen.
Since: 12
HIDEBUG_TRACE_TAG_FFRT
#define HIDEBUG_TRACE_TAG_FFRT (1ULL << 13)
Description
Indicates the FFRT task.
Since: 12
HIDEBUG_TRACE_TAG_FILE_MANAGEMENT
#define HIDEBUG_TRACE_TAG_FILE_MANAGEMENT (1ULL << 29)
Description
Indicates the file management.
Since: 12
HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER
#define HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER (1ULL << 53)
Description
Indicates the global resource manager.
Since: 12
HIDEBUG_TRACE_TAG_GRAPHICS
#define HIDEBUG_TRACE_TAG_GRAPHICS (1ULL << 38)
Description
Indicates the graphics module.
Since: 12
HIDEBUG_TRACE_TAG_HDF
#define HIDEBUG_TRACE_TAG_HDF (1ULL << 18)
Description
Indicates the HDF subsystem.
Since: 12
HIDEBUG_TRACE_TAG_IMAGE
#define HIDEBUG_TRACE_TAG_IMAGE (1ULL << 34)
Description
Indicates the image module.
Since: 12
HIDEBUG_TRACE_TAG_MEDIA
#define HIDEBUG_TRACE_TAG_MEDIA (1ULL << 33)
Description
Indicates the media module.
Since: 12
HIDEBUG_TRACE_TAG_MISC
#define HIDEBUG_TRACE_TAG_MISC (1ULL << 41)
Description
Indicates the MISC module.
Since: 12
HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT
#define HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT (1ULL << 42)
Description
Indicates the multimodal input module.
Since: 12
HIDEBUG_TRACE_TAG_NET
#define HIDEBUG_TRACE_TAG_NET (1ULL << 23)
Description
Indicates the network.
Since: 12
HIDEBUG_TRACE_TAG_NOTIFICATION
#define HIDEBUG_TRACE_TAG_NOTIFICATION (1ULL << 40)
Description
Indicates the notification module.
Since: 12
HIDEBUG_TRACE_TAG_NWEB
#define HIDEBUG_TRACE_TAG_NWEB (1ULL << 24)
Description
Indicates the NWeb.
Since: 12
HIDEBUG_TRACE_TAG_OHOS
#define HIDEBUG_TRACE_TAG_OHOS (1ULL << 30)
Description
Indicates the OpenHarmony OS.
Since: 12
HIDEBUG_TRACE_TAG_POWER_MANAGER
#define HIDEBUG_TRACE_TAG_POWER_MANAGER (1ULL << 56)
Description
Indicates the power manager.
Since: 12
HIDEBUG_TRACE_TAG_RPC
#define HIDEBUG_TRACE_TAG_RPC (1ULL << 46)
Description
Indicates the RPC.
Since: 12
HIDEBUG_TRACE_TAG_SAMGR
#define HIDEBUG_TRACE_TAG_SAMGR (1ULL << 55)
Description
Indicates the service ability manager (SAMGR).
Since: 12
HIDEBUG_TRACE_TAG_WINDOW_MANAGER
#define HIDEBUG_TRACE_TAG_WINDOW_MANAGER (1ULL << 48)
Description
Indicates the window manager.
Since: 12
Type Description
HiDebug_ErrorCode
typedef enum HiDebug_ErrorCode HiDebug_ErrorCode
Description
Defines an enum for error codes.
Since: 12
HiDebug_MemoryLimit
typedef struct HiDebug_MemoryLimit HiDebug_MemoryLimit
Description
Defines a struct for the memory limit of an application process.
Since: 12
HiDebug_NativeMemInfo
typedef struct HiDebug_NativeMemInfo HiDebug_NativeMemInfo
Description
Defines a struct for the local memory information of the application process.
Since: 12
HiDebug_SystemMemInfo
typedef struct HiDebug_SystemMemInfo HiDebug_SystemMemInfo
Description
Defines a struct for the system memory information.
Since: 12
HiDebug_ThreadCpuUsage
typedef struct HiDebug_ThreadCpuUsage HiDebug_ThreadCpuUsage
Description
Defines a struct for the CPU usage of all threads of an application.
Since: 12
HiDebug_ThreadCpuUsagePtr
typedef HiDebug_ThreadCpuUsage* HiDebug_ThreadCpuUsagePtr
Description
Defines the pointer to HiDebug_ThreadCpuUsage.
Since: 12
HiDebug_TraceFlag
typedef enum HiDebug_TraceFlag HiDebug_TraceFlag
Description
Defines an enum for the types of threads for trace collection.
Since: 12
Enum Description
HiDebug_ErrorCode
enum HiDebug_ErrorCode
Description
Enumerates the error codes used in the HiDebug module.
Since: 12
| Value | Description |
|---|---|
| HIDEBUG_SUCCESS | Execution successful. |
| HIDEBUG_INVALID_ARGUMENT | Invalid parameter type or incorrect parameter value. |
| HIDEBUG_TRACE_CAPTURED_ALREADY | Repeated collection. |
| HIDEBUG_NO_PERMISSION | No file write permission. |
| HIDEBUG_TRACE_ABNORMAL | Abnormal trace status. |
HiDebug_TraceFlag
enum HiDebug_TraceFlag
Description
Enumerates the types of the threads for trace collection.
Since: 12
| Value | Description |
|---|---|
| HIDEBUG_TRACE_FLAG_MAIN_THREAD | Only the main thread of the current application. |
| HIDEBUG_TRACE_FLAG_ALL_THREADS | All threads of the current application. |
Function Description
OH_HiDebug_FreeThreadCpuUsage()
void OH_HiDebug_FreeThreadCpuUsage (HiDebug_ThreadCpuUsagePtr * threadCpuUsage)
Description
Releases the HiDebug_ThreadCpuUsagePtr.
Since: 12
Parameters
| Name | Description |
|---|---|
| threadCpuUsage | Pointer to the buffer that stores the available CPU for all threads of the application. For details, see HiDebug_ThreadCpuUsagePtr. The input parameter is obtained by OH_HiDebug_GetAppThreadCpuUsage(). |
OH_HiDebug_GetAppCpuUsage()
double OH_HiDebug_GetAppCpuUsage ()
Description
Obtains the CPU usage of an application.
Since: 12
Returns
Returns the application CPU usage obtained if the operation is successful. Returns 0 if the operation fails.
OH_HiDebug_GetAppMemoryLimit()
void OH_HiDebug_GetAppMemoryLimit (HiDebug_MemoryLimit * memoryLimit)
Description
Obtains the memory limit of an application process.
Since: 12
Parameters
| Name | Description |
|---|---|
| memoryLimit | Pointer to the HiDebug_MemoryLimit to obtain. If the struct is empty, the function call fails. |
OH_HiDebug_GetAppNativeMemInfo()
void OH_HiDebug_GetAppNativeMemInfo (HiDebug_NativeMemInfo * nativeMemInfo)
Description
Obtains the memory information of an application process.
Since: 12
Parameters
| Name | Description |
|---|---|
| nativeMemInfo | Pointer to the HiDebug_NativeMemInfo to obtain. If the struct is empty, the function call fails. |
OH_HiDebug_GetAppThreadCpuUsage()
HiDebug_ThreadCpuUsagePtr OH_HiDebug_GetAppThreadCpuUsage ()
Description
Obtains the CPU usage of all threads of an application.
Since: 12
Returns
Returns the CPU usage of all threads. For details, see HiDebug_ThreadCpuUsagePtr. Returns null if the function fails to be called.
OH_HiDebug_GetSystemCpuUsage()
double OH_HiDebug_GetSystemCpuUsage ()
Description
Obtains the CPU usage of the system.
Since: 12
Returns
Returns the system CPU usage if the operation is successful. Returns 0 if the operation fails.
OH_HiDebug_GetSystemMemInfo()
void OH_HiDebug_GetSystemMemInfo (HiDebug_SystemMemInfo * systemMemInfo)
Description
Obtains system memory information.
Since: 12
Parameters
| Name | Description |
|---|---|
| systemMemInfo | Pointer to the HiDebug_SystemMemInfo to obtain. If the struct is empty, the function call fails. |
OH_HiDebug_StartAppTraceCapture()
HiDebug_ErrorCode OH_HiDebug_StartAppTraceCapture (HiDebug_TraceFlag flag, uint64_t tags, uint32_t limitSize, char * fileName, uint32_t length )
Description
Starts application trace collection.
Since: 12
Parameters
| Name | Description |
|---|---|
| flag | Type of the thread (the main thread or all threads of the application) to trace. |
| tags | Modules or subsystems to trace. |
| limitSize | Maximum size of the trace file (in bytes), which is 500 MB. |
| fileName | Buffer for the output trace file. |
| length | Length of the buffer for the output trace file. |
Returns
0 - The operation is successful. 401 - The fileName parameter is a null pointer, the input length parameter is too small, or the value of limitSize is 0 or smaller than 0. 11400102 - A trace is already started. 11400103 - You do not have the permission to start the trace function. 11400104 - An internal system error occurs.
OH_HiDebug_StopAppTraceCapture()
HiDebug_ErrorCode OH_HiDebug_StopAppTraceCapture ()
Description
Stops application trace collection.
Since: 12
Returns
0 - The operation is successful. 11400104 - An internal system error occurs. 11400105 - No trace is being performed.
OH_HiDebug_GetGraphicsMemory();
HiDebug_ErrorCode OH_HiDebug_GetGraphicsMemory(uint32_t *value);
Description
Obtains the size of the GPU memory.
Since: 14
Parameters
| Name | Description |
|---|---|
| value | Pointer to the variable that stores the size (in KB) of the obtained GPU memory. |
Returns
0 - The operation is successful. 401- The input parameter is invalid. 11400104 - An internal system error occurs.