# 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](hidebug_8h.md) | Defines the APIs for debugging.|
| [hidebug_type.h](hidebug__type_8h.md) | Defines the structs of the HiDebug module.|
### Structs
| Name| Description|
| -------- | -------- |
| struct [HiDebug_ThreadCpuUsage](_hi_debug___thread_cpu_usage.md) | Defines the CPU usage of all threads of an application.|
| struct [HiDebug_SystemMemInfo](_hi_debug___system_mem_info.md) | Defines the system memory information.|
| struct [HiDebug_NativeMemInfo](_hi_debug___native_mem_info.md) | Defines the local memory information of an application process.|
| struct [HiDebug_MemoryLimit](_hi_debug___memory_limit.md) | Defines the memory limit of an application process.|
### Macros
| Name| Description|
| -------- | -------- |
| [HIDEBUG_TRACE_TAG_FFRT](#hidebug_trace_tag_ffrt) (1ULL << 13) | Indicates the FFRT task.|
| [HIDEBUG_TRACE_TAG_COMMON_LIBRARY](#hidebug_trace_tag_common_library) (1ULL << 16) | Indicates the common library subsystem.|
| [HIDEBUG_TRACE_TAG_HDF](#hidebug_trace_tag_hdf) (1ULL << 18) | Indicates the HDF subsystem.|
| [HIDEBUG_TRACE_TAG_NET](#hidebug_trace_tag_net) (1ULL << 23) | Indicates the network.|
| [HIDEBUG_TRACE_TAG_NWEB](#hidebug_trace_tag_nweb) (1ULL << 24) | Indicates the NWeb.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO](#hidebug_trace_tag_distributed_audio) (1ULL << 27) | Indicates the distributed audio.|
| [HIDEBUG_TRACE_TAG_FILE_MANAGEMENT](#hidebug_trace_tag_file_management) (1ULL << 29) | Indicates the file management.|
| [HIDEBUG_TRACE_TAG_OHOS](#hidebug_trace_tag_ohos) (1ULL << 30) | Indicates the OpenHarmony OS.|
| [HIDEBUG_TRACE_TAG_ABILITY_MANAGER](#hidebug_trace_tag_ability_manager) (1ULL << 31) | Indicates the ability manager.|
| [HIDEBUG_TRACE_TAG_CAMERA](#hidebug_trace_tag_camera) (1ULL << 32) | Indicates the camera module.|
| [HIDEBUG_TRACE_TAG_MEDIA](#hidebug_trace_tag_media) (1ULL << 33) | Indicates the media module.|
| [HIDEBUG_TRACE_TAG_IMAGE](#hidebug_trace_tag_image) (1ULL << 34) | Indicates the image module.|
| [HIDEBUG_TRACE_TAG_AUDIO](#hidebug_trace_tag_audio) (1ULL << 35) | Indicates the audio module.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA](#hidebug_trace_tag_distributed_data) (1ULL << 36) | Indicates the distributed data management.|
| [HIDEBUG_TRACE_TAG_GRAPHICS](#hidebug_trace_tag_graphics) (1ULL << 38) | Indicates the graphics module.|
| [HIDEBUG_TRACE_TAG_ARKUI](#hidebug_trace_tag_arkui) (1ULL << 39) | Indicates the ArkUI development framework.|
| [HIDEBUG_TRACE_TAG_NOTIFICATION](#hidebug_trace_tag_notification) (1ULL << 40) | Indicates the notification module.|
| [HIDEBUG_TRACE_TAG_MISC](#hidebug_trace_tag_misc) (1ULL << 41) | Indicates the MISC module.|
| [HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT](#hidebug_trace_tag_multimodal_input) (1ULL << 42) | Indicates the multimodal input module.|
| [HIDEBUG_TRACE_TAG_RPC](#hidebug_trace_tag_rpc) (1ULL << 46) | Indicates the RPC.|
| [HIDEBUG_TRACE_TAG_ARK](#hidebug_trace_tag_ark) (1ULL << 47) | Indicates the JSVM.|
| [HIDEBUG_TRACE_TAG_WINDOW_MANAGER](#hidebug_trace_tag_window_manager) (1ULL << 48) | Indicates the window manager.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN](#hidebug_trace_tag_distributed_screen) (1ULL << 50) | Indicates the distributed screen.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA](#hidebug_trace_tag_distributed_camera) (1ULL << 51) | Indicates the distributed camera.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK](#hidebug_trace_tag_distributed_hardware_framework) (1ULL << 52) | Indicates the distributed hardware framework.|
| [HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER](#hidebug_trace_tag_global_resource_manager) (1ULL << 53) | Indicates the global resource manager.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER](#hidebug_trace_tag_distributed_hardware_device_manager) (1ULL << 54) | Indicates the distributed hardware device manager.|
| [HIDEBUG_TRACE_TAG_SAMGR](#hidebug_trace_tag_samgr) (1ULL << 55) | Indicates the service ability manager (SAMGR).|
| [HIDEBUG_TRACE_TAG_POWER_MANAGER](#hidebug_trace_tag_power_manager) (1ULL << 56) | Indicates the power manager.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER](#hidebug_trace_tag_distributed_scheduler) (1ULL << 57) | Indicates the distributed scheduler.|
| [HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT](#hidebug_trace_tag_distributed_input) (1ULL << 59) | Indicates the distributed input.|
| [HIDEBUG_TRACE_TAG_BLUETOOTH](#hidebug_trace_tag_bluetooth) (1ULL << 60) | Indicates the Bluetooth.|
### Types
| Name| Description|
| -------- | -------- |
| typedef enum [HiDebug_ErrorCode](#hidebug_errorcode-1) [HiDebug_ErrorCode](#hidebug_errorcode) | Defines an enum for error codes.|
| typedef struct [HiDebug_ThreadCpuUsage](_hi_debug___thread_cpu_usage.md) [HiDebug_ThreadCpuUsage](#hidebug_threadcpuusage) | Defines a struct for the CPU usage of all threads of an application.|
| typedef [HiDebug_ThreadCpuUsage](_hi_debug___thread_cpu_usage.md) \* [HiDebug_ThreadCpuUsagePtr](#hidebug_threadcpuusageptr) | Defines the pointer to **HiDebug_ThreadCpuUsage**.|
| typedef struct [HiDebug_SystemMemInfo](_hi_debug___system_mem_info.md) [HiDebug_SystemMemInfo](#hidebug_systemmeminfo) | Defines a struct for the system memory information.|
| typedef struct [HiDebug_NativeMemInfo](_hi_debug___native_mem_info.md) [HiDebug_NativeMemInfo](#hidebug_nativememinfo) | Defines a struct for the local memory information of the application process.|
| typedef struct [HiDebug_MemoryLimit](_hi_debug___memory_limit.md) [HiDebug_MemoryLimit](#hidebug_memorylimit) | Defines a struct for the memory limit of an application process.|
| typedef enum [HiDebug_TraceFlag](#hidebug_traceflag-1) [HiDebug_TraceFlag](#hidebug_traceflag) | Defines an enum for the types of threads for trace collection.|
### Enums
| Name| Description|
| -------- | -------- |
| [HiDebug_ErrorCode](#hidebug_errorcode-1) {
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_traceflag-1) {
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](#oh_hidebug_getsystemcpuusage) () | Obtains the CPU usage of the system.|
| double [OH_HiDebug_GetAppCpuUsage](#oh_hidebug_getappcpuusage) () | Obtains the CPU usage of an application.|
| [HiDebug_ThreadCpuUsagePtr](#hidebug_threadcpuusageptr) [OH_HiDebug_GetAppThreadCpuUsage](#oh_hidebug_getappthreadcpuusage) () | Obtains the CPU usage of all threads of an application.|
| void [OH_HiDebug_FreeThreadCpuUsage](#oh_hidebug_freethreadcpuusage) ([HiDebug_ThreadCpuUsagePtr](#hidebug_threadcpuusageptr) \*threadCpuUsage) | Releases the **HiDebug_ThreadCpuUsagePtr**.|
| void [OH_HiDebug_GetSystemMemInfo](#oh_hidebug_getsystemmeminfo) ([HiDebug_SystemMemInfo](_hi_debug___system_mem_info.md) \*systemMemInfo) | Obtains system memory information.|
| void [OH_HiDebug_GetAppNativeMemInfo](#oh_hidebug_getappnativememinfo) ([HiDebug_NativeMemInfo](_hi_debug___native_mem_info.md) \*nativeMemInfo) | Obtains the memory information of an application process.|
| void [OH_HiDebug_GetAppMemoryLimit](#oh_hidebug_getappmemorylimit) ([HiDebug_MemoryLimit](_hi_debug___memory_limit.md) \*memoryLimit) | Obtains the memory limit of an application process.|
| [HiDebug_ErrorCode](#hidebug_errorcode) [OH_HiDebug_StartAppTraceCapture](#oh_hidebug_startapptracecapture) ([HiDebug_TraceFlag](#hidebug_traceflag) flag, uint64_t tags, uint32_t limitSize, char \*fileName, uint32_t length) | Starts application trace collection.|
| [HiDebug_ErrorCode](#hidebug_errorcode) [OH_HiDebug_StopAppTraceCapture](#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](#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](_hi_debug___memory_limit.md) 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](_hi_debug___native_mem_info.md) 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](#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](_hi_debug___system_mem_info.md) 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.