harmony 鸿蒙HiDebug
HiDebug
概述
提供调试功能。
本模块函数可用于获取cpu uage、memory、heap、capture trace等。
起始版本: 12
汇总
文件
名称 | 描述 |
---|---|
hidebug.h | 定义HiDebug模块的调试功能。 |
hidebug_type.h | HiDebug模块代码结构体定义。 |
结构体
名称 | 描述 |
---|---|
struct HiDebug_ThreadCpuUsage | 应用程序所有线程的CPU使用率结构体定义。 |
struct HiDebug_SystemMemInfo | 系统内存信息结构类型定义。 |
struct HiDebug_NativeMemInfo | 应用程序进程本机内存信息结构类型定义。 |
struct HiDebug_MemoryLimit | 应用程序进程内存限制结构类型定义。 |
struct HiDebug_JsStackFrame | js栈帧内容的定义。 |
struct HiDebug_NativeStackFrame | native栈帧内容的定义。 |
struct HiDebug_StackFrame | 栈帧内容的定义。 |
宏定义
名称 | 描述 |
---|---|
HIDEBUG_TRACE_TAG_FFRT (1ULL << 13) | FFRT任务标签。 |
HIDEBUG_TRACE_TAG_COMMON_LIBRARY (1ULL << 16) | 公共库子系统标签。 |
HIDEBUG_TRACE_TAG_HDF (1ULL << 18) | HDF子系统标签。 |
HIDEBUG_TRACE_TAG_NET (1ULL << 23) | 网络标签。 |
HIDEBUG_TRACE_TAG_NWEB (1ULL << 24) | NWeb标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO (1ULL << 27) | 分布式音频标签。 |
HIDEBUG_TRACE_TAG_FILE_MANAGEMENT (1ULL << 29) | 文件管理标签。 |
HIDEBUG_TRACE_TAG_OHOS (1ULL << 30) | OHOS通用标签。 |
HIDEBUG_TRACE_TAG_ABILITY_MANAGER (1ULL << 31) | Ability Manager标签。 |
HIDEBUG_TRACE_TAG_CAMERA (1ULL << 32) | 相机模块标签。 |
HIDEBUG_TRACE_TAG_MEDIA (1ULL << 33) | 媒体模块标签。 |
HIDEBUG_TRACE_TAG_IMAGE (1ULL << 34) | 图像模块标签。 |
HIDEBUG_TRACE_TAG_AUDIO (1ULL << 35) | 音频模块标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA (1ULL << 36) | 分布式数据管理器模块标签。 |
HIDEBUG_TRACE_TAG_GRAPHICS (1ULL << 38) | 图形模块标签。 |
HIDEBUG_TRACE_TAG_ARKUI (1ULL << 39) | ArkUI开发框架标签。 |
HIDEBUG_TRACE_TAG_NOTIFICATION (1ULL << 40) | 通知模块标签。 |
HIDEBUG_TRACE_TAG_MISC (1ULL << 41) | MISC模块标签。 |
HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT (1ULL << 42) | 多模态输入模块标签。 |
HIDEBUG_TRACE_TAG_RPC (1ULL << 46) | RPC标签。 |
HIDEBUG_TRACE_TAG_ARK (1ULL << 47) | JSVM虚拟机标签。 |
HIDEBUG_TRACE_TAG_WINDOW_MANAGER (1ULL << 48) | 窗口管理器标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN (1ULL << 50) | 分布式屏幕标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA (1ULL << 51) | 分布式相机标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK (1ULL << 52) | 分布式硬件框架标签。 |
HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER (1ULL << 53) | 全局资源管理器标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER (1ULL << 54) | 分布式硬件设备管理器标签。 |
HIDEBUG_TRACE_TAG_SAMGR (1ULL << 55) | SA标签。 |
HIDEBUG_TRACE_TAG_POWER_MANAGER (1ULL << 56) | 电源管理器标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER (1ULL << 57) | 分布式调度程序标签。 |
HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT (1ULL << 59) | 分布式输入标签。 |
HIDEBUG_TRACE_TAG_BLUETOOTH (1ULL << 60) | 蓝牙标签。 |
类型定义
枚举
名称 | 描述 |
---|---|
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, HIDEBUG_INVALID_SYMBOLIC_PC_ADDRESS = 11400200 } |
错误码定义。 |
HiDebug_TraceFlag { HIDEBUG_TRACE_FLAG_MAIN_THREAD = 1, HIDEBUG_TRACE_FLAG_ALL_THREADS = 2 } | 采集trace线程的类型。 |
HiDebug_StackFrameType { HIDEBUG_STACK_FRAME_TYPE_JS = 1, HIDEBUG_STACK_FRAME_TYPE_NATIVE = 2 } | 栈帧类型的枚举值定义。 |
函数
宏定义说明
HIDEBUG_TRACE_TAG_ABILITY_MANAGER
#define HIDEBUG_TRACE_TAG_ABILITY_MANAGER (1ULL << 31)
描述
Ability Manager标签。
起始版本: 12
HIDEBUG_TRACE_TAG_ARK
#define HIDEBUG_TRACE_TAG_ARK (1ULL << 47)
描述
JSVM虚拟机标签。
起始版本: 12
HIDEBUG_TRACE_TAG_ARKUI
#define HIDEBUG_TRACE_TAG_ARKUI (1ULL << 39)
描述
ArkUI开发框架标签。
起始版本: 12
HIDEBUG_TRACE_TAG_AUDIO
#define HIDEBUG_TRACE_TAG_AUDIO (1ULL << 35)
描述
音频模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_BLUETOOTH
#define HIDEBUG_TRACE_TAG_BLUETOOTH (1ULL << 60)
描述
蓝牙标签。
起始版本: 12
HIDEBUG_TRACE_TAG_CAMERA
#define HIDEBUG_TRACE_TAG_CAMERA (1ULL << 32)
描述
相机模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_COMMON_LIBRARY
#define HIDEBUG_TRACE_TAG_COMMON_LIBRARY (1ULL << 16)
描述
公共库子系统标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_AUDIO (1ULL << 27)
描述
分布式音频标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_CAMERA (1ULL << 51)
描述
分布式相机标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_DATA (1ULL << 36)
描述
分布式数据管理器模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_DEVICE_MANAGER (1ULL << 54)
描述
分布式硬件设备管理器标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_HARDWARE_FRAMEWORK (1ULL << 52)
描述
分布式硬件框架标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_INPUT (1ULL << 59)
描述
分布式输入标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_SCHEDULER (1ULL << 57)
描述
分布式调度程序标签。
起始版本: 12
HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN
#define HIDEBUG_TRACE_TAG_DISTRIBUTED_SCREEN (1ULL << 50)
描述
分布式屏幕标签。
起始版本: 12
HIDEBUG_TRACE_TAG_FFRT
#define HIDEBUG_TRACE_TAG_FFRT (1ULL << 13)
描述
FFRT任务标签。
起始版本: 12
HIDEBUG_TRACE_TAG_FILE_MANAGEMENT
#define HIDEBUG_TRACE_TAG_FILE_MANAGEMENT (1ULL << 29)
描述
文件管理标签。
起始版本: 12
HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER
#define HIDEBUG_TRACE_TAG_GLOBAL_RESOURCE_MANAGER (1ULL << 53)
描述
全局资源管理器标签。
起始版本: 12
HIDEBUG_TRACE_TAG_GRAPHICS
#define HIDEBUG_TRACE_TAG_GRAPHICS (1ULL << 38)
描述
图形模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_HDF
#define HIDEBUG_TRACE_TAG_HDF (1ULL << 18)
描述
HDF子系统标签。
起始版本: 12
HIDEBUG_TRACE_TAG_IMAGE
#define HIDEBUG_TRACE_TAG_IMAGE (1ULL << 34)
描述
图像模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_MEDIA
#define HIDEBUG_TRACE_TAG_MEDIA (1ULL << 33)
描述
媒体模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_MISC
#define HIDEBUG_TRACE_TAG_MISC (1ULL << 41)
描述
MISC模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT
#define HIDEBUG_TRACE_TAG_MULTIMODAL_INPUT (1ULL << 42)
描述
多模态输入模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_NET
#define HIDEBUG_TRACE_TAG_NET (1ULL << 23)
描述
网络标签。
起始版本: 12
HIDEBUG_TRACE_TAG_NOTIFICATION
#define HIDEBUG_TRACE_TAG_NOTIFICATION (1ULL << 40)
描述
通知模块标签。
起始版本: 12
HIDEBUG_TRACE_TAG_NWEB
#define HIDEBUG_TRACE_TAG_NWEB (1ULL << 24)
描述
NWeb标签。
起始版本: 12
HIDEBUG_TRACE_TAG_OHOS
#define HIDEBUG_TRACE_TAG_OHOS (1ULL << 30)
描述
OHOS通用标签。
起始版本: 12
HIDEBUG_TRACE_TAG_POWER_MANAGER
#define HIDEBUG_TRACE_TAG_POWER_MANAGER (1ULL << 56)
描述
电源管理器标签。
起始版本: 12
HIDEBUG_TRACE_TAG_RPC
#define HIDEBUG_TRACE_TAG_RPC (1ULL << 46)
描述
RPC标签。
起始版本: 12
HIDEBUG_TRACE_TAG_SAMGR
#define HIDEBUG_TRACE_TAG_SAMGR (1ULL << 55)
描述
SA标签。
起始版本: 12
HIDEBUG_TRACE_TAG_WINDOW_MANAGER
#define HIDEBUG_TRACE_TAG_WINDOW_MANAGER (1ULL << 48)
描述
窗口管理器标签。
起始版本: 12
类型定义说明
HiDebug_Backtrace_Object
typedef struct HiDebug_Backtrace_Object__* HiDebug_Backtrace_Object
描述
用于栈回溯及栈解析的对象。
起始版本: 20
HiDebug_ErrorCode
typedef enum HiDebug_ErrorCodeHiDebug_ErrorCode
描述
错误码定义。
起始版本: 12
HiDebug_JsStackFrame
typedef struct HiDebug_JsStackFrameHiDebug_JsStackFrame
描述
js栈帧内容的定义。
起始版本: 20
HiDebug_MemoryLimit
typedef struct HiDebug_MemoryLimitHiDebug_MemoryLimit
描述
应用程序进程内存限制结构类型定义。
起始版本: 12
HiDebug_NativeMemInfo
typedef struct HiDebug_NativeMemInfoHiDebug_NativeMemInfo
描述
应用程序进程本机内存信息结构类型定义。
起始版本: 12
HiDebug_NativeStackFrame
typedef struct HiDebug_NativeStackFrameHiDebug_NativeStackFrame
描述
native栈帧内容的定义。
起始版本: 20
HiDebug_StackFrame
typedef struct HiDebug_StackFrameHiDebug_StackFrame
描述
栈帧内容的定义。
起始版本: 20
HiDebug_StackFrameType
typedef enum HiDebug_StackFrameTypeHiDebug_StackFrameType
描述
栈帧类型的枚举值定义。
起始版本: 20
HiDebug_SystemMemInfo
typedef struct HiDebug_SystemMemInfoHiDebug_SystemMemInfo
描述
系统内存信息结构类型定义。
起始版本: 12
HiDebug_ThreadCpuUsage
typedef struct HiDebug_ThreadCpuUsageHiDebug_ThreadCpuUsage
描述
应用程序所有线程的CPU使用率结构体定义。
起始版本: 12
HiDebug_ThreadCpuUsagePtr
typedef HiDebug_ThreadCpuUsage* HiDebug_ThreadCpuUsagePtr
描述
HiDebug_ThreadCpuUsage指针定义。
起始版本: 12
HiDebug_TraceFlag
typedef enum HiDebug_TraceFlagHiDebug_TraceFlag
描述
采集trace线程的类型。
起始版本: 12
OH_HiDebug_SymbolicAddressCallback
typedef void(* OH_HiDebug_SymbolicAddressCallback) (void *pc, void *arg, const HiDebug_StackFrame *frame)
描述
若OH_HiDebug_SymbolicAddress接口调用成功,将通过该函数将解析后的栈信息返回给调用者。
起始版本: 20
参数:
名称 | 描述 |
---|---|
pc | 传入OH_HiDebug_SymbolicAddress接口的需要解析的pc地址。 |
arg | 传入OH_HiDebug_SymbolicAddress接口的arg值。 |
frame | 由传入OH_HiDebug_SymbolicAddress接口的pc地址解析后的得到栈信息HiDebug_StackFrame指针,该指针指向内容仅在该函数作用域内有效。 |
枚举类型说明
HiDebug_ErrorCode
enum HiDebug_ErrorCode
描述
错误码定义。
起始版本: 12
枚举值 | 描述 |
---|---|
HIDEBUG_SUCCESS | 成功。 |
HIDEBUG_INVALID_ARGUMENT | 无效参数,可能的原因: 1.参数传值问题;2.参数类型问题。 |
HIDEBUG_TRACE_CAPTURED_ALREADY | 重复采集。 |
HIDEBUG_NO_PERMISSION | 没有写文件的权限。 |
HIDEBUG_TRACE_ABNORMAL | 系统内部错误。 |
HIDEBUG_NO_TRACE_RUNNING | 当前没有trace正在运行。 |
HIDEBUG_INVALID_SYMBOLIC_PC_ADDRESS | 传入符号解析函数的pc地址是无效的。 自从 20 |
HiDebug_StackFrameType
enum HiDebug_StackFrameType
描述
栈帧类型的枚举值定义。
起始版本: 20
枚举值 | 描述 |
---|---|
HIDEBUG_STACK_FRAME_TYPE_JS | js类型栈帧。 |
HIDEBUG_STACK_FRAME_TYPE_NATIVE | native类型栈帧。 |
HiDebug_TraceFlag
enum HiDebug_TraceFlag
描述
采集trace线程的类型。
起始版本: 12
枚举值 | 描述 |
---|---|
HIDEBUG_TRACE_FLAG_MAIN_THREAD | 只采集当前应用主线程。 |
HIDEBUG_TRACE_FLAG_ALL_THREADS | 采集当前应用下所有线程。 |
函数说明
OH_HiDebug_BacktraceFromFp()
int OH_HiDebug_BacktraceFromFp (HiDebug_Backtrace_Object object, void * startFp, void ** pcArray, int size )
描述
根据给定的fp地址进行栈回溯,该函数异步信号安全。
起始版本: 20
参数:
名称 | 描述 |
---|---|
object | 由OH_HiDebug_CreateBacktraceObject接口获取到的用来栈回溯的对象。 |
startFp | 栈回溯的起始栈帧地址。 |
pcArray | 保存栈回溯得到的pc地址的数组。 |
size | 保存栈回溯得到的pc地址的数组长度。 |
返回:
成功回溯并写入到pcArray中的栈帧数量。如果返回结果为0,原因可能是栈回溯失败。
OH_HiDebug_CreateBacktraceObject()
HiDebug_Backtrace_Object OH_HiDebug_CreateBacktraceObject (void )
描述
创建一个用于栈回溯及栈解析的对象,该函数非异步信号安全。
起始版本: 20
返回:
返回创建的对象的指针,当创建失败时返回NULL。
OH_HiDebug_DestroyBacktraceObject()
void OH_HiDebug_DestroyBacktraceObject (HiDebug_Backtrace_Object object)
描述
销毁由OH_HiDebug_CreateBacktraceObject创建的对象,以释放栈回溯及栈解析过程中申请的资源,该函数非异步信号安全。
起始版本: 20
参数:
名称 | 描述 |
---|---|
object | 需要被销毁的对象。 |
OH_HiDebug_FreeThreadCpuUsage()
void OH_HiDebug_FreeThreadCpuUsage (HiDebug_ThreadCpuUsagePtr * threadCpuUsage)
描述
释放线程数据结构。
起始版本: 12
参数:
名称 | 描述 |
---|---|
threadCpuUsage | 应用的所有线程可用CPU使用缓冲区指针,见HiDebug_ThreadCpuUsagePtr。 传入的参数是要由OH_HiDebug_GetAppThreadCpuUsage()得到的。 |
OH_HiDebug_GetAppCpuUsage()
double OH_HiDebug_GetAppCpuUsage ()
描述
获取进程的CPU使用率百分比。
起始版本: 12
返回:
返回进程的CPU使用率百分比。如果返回结果为0,可能的原因是当前应用的cpu使用率过低。
OH_HiDebug_GetAppMemoryLimit()
void OH_HiDebug_GetAppMemoryLimit (HiDebug_MemoryLimit * memoryLimit)
描述
获取应用程序进程的内存限制。
起始版本: 12
参数:
名称 | 描述 |
---|---|
memoryLimit | 表示指向HiDebug_MemoryLimit。 经过该函数调用,如果结构体里的数据为空,说明调用失败。 |
OH_HiDebug_GetAppNativeMemInfo()
void OH_HiDebug_GetAppNativeMemInfo (HiDebug_NativeMemInfo * nativeMemInfo)
描述
获取应用程序进程的内存信息。
起始版本: 12
参数:
名称 | 描述 |
---|---|
nativeMemInfo | 表示指向HiDebug_NativeMemInfo。 经过该函数调用,如果结构体里的数据为空,说明调用失败。 |
OH_HiDebug_GetAppThreadCpuUsage()
HiDebug_ThreadCpuUsagePtr OH_HiDebug_GetAppThreadCpuUsage ()
描述
获取应用所有线程CPU使用情况。
起始版本: 12
返回:
返回所有线程CPU使用情况,见HiDebug_ThreadCpuUsagePtr。 如果返回的结果是null,可能的原因是未获取到线程相关的数据。
OH_HiDebug_GetGraphicsMemory()
HiDebug_ErrorCode OH_HiDebug_GetGraphicsMemory (uint32_t * value)
描述
获取应用gpu显存大小。
起始版本: 14
参数:
名称 | 描述 |
---|---|
value | 指向用来保存接口获取到的应用显存大小(单位KB)的变量的指针。 |
返回:
0 - 接口获取成功。
401 - 无效参数,所传递参数为空指针。
11400104 - 系统内部错误。
OH_HiDebug_GetSystemCpuUsage()
double OH_HiDebug_GetSystemCpuUsage ()
描述
获取系统的CPU资源占用情况百分比。
起始版本: 12
返回:
返回系统CPU资源占用情况百分比。如果返回结果为0,可能的原因是获取失败。
OH_HiDebug_GetSystemMemInfo()
void OH_HiDebug_GetSystemMemInfo (HiDebug_SystemMemInfo * systemMemInfo)
描述
获取系统内存信息。
起始版本: 12
参数:
名称 | 描述 |
---|---|
systemMemInfo | 表示指向HiDebug_SystemMemInfo。 经过该函数调用,如果结构体里的数据为空,说明调用失败。 |
OH_HiDebug_StartAppTraceCapture()
HiDebug_ErrorCode OH_HiDebug_StartAppTraceCapture (HiDebug_TraceFlag flag, uint64_t tags, uint32_t limitSize, char * fileName, uint32_t length )
描述
启动应用trace采集。
起始版本: 12
参数:
名称 | 描述 |
---|---|
flag | 采集线程trace方式。 |
tags | 采集trace场景标签。 |
limitSize | trace文件的最大大小(以字节为单位),最大为 500MB。 |
fileName | 输出trace文件名缓冲区。 |
length | 输出trace文件名缓冲区长度。 |
返回:
0 - 成功。
HIDEBUG_INVALID_ARGUMENT 401 - fileName参数为空指针或者传入的length参数过小或者limitSize参数小于等于0。
11400102 - 已经开启了一个trace。
11400103 - 没有权限去开启trace。
11400104 - 系统内部错误。
OH_HiDebug_StopAppTraceCapture()
HiDebug_ErrorCode OH_HiDebug_StopAppTraceCapture ()
描述
停止采集应用程序trace。
起始版本: 12
返回:
0 - 成功。
11400104 - 系统内部错误。
11400105 - 当前没有trace正在运行
OH_HiDebug_SymbolicAddress()
HiDebug_ErrorCode OH_HiDebug_SymbolicAddress (HiDebug_Backtrace_Object object, void * pc, void * arg, OH_HiDebug_SymbolicAddressCallback callback )
描述
通过给定的pc地址获取详细的符号信息,该函数非异步信号安全。
起始版本: 20
参数:
名称 | 描述 |
---|---|
object | 由OH_HiDebug_CreateBacktraceObject接口创建的对象。 |
pc | 由OH_HiDebug_BacktraceFromFp接口获取到的pc地址。 |
arg | 保留的自定义参数,符号解析成功后系统内部会将该参数传递给回调函数OH_HiDebug_SymbolicAddressCallback。 |
callback | 用于返回解析后栈信息的回调函数。 |
返回:
返回结果具体可参考HiDebug_ErrorCode: HIDEBUG_SUCCESS 成功获取到详细的栈信息,且该函数传入的callback被调用。
HIDEBUG_INVALID_ARGUMENT 无效参数。
HIDEBUG_INVALID_SYMBOLIC_PC_ADDRESS 无法根据传入的pc地址找到对应的符号。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Performance Analysis Kit(性能分析服务)
harmony 鸿蒙HiAppEvent_AppEventGroup
harmony 鸿蒙HiAppEvent_AppEventInfo
harmony 鸿蒙HiCollie_DetectionParam
harmony 鸿蒙HiCollie_SetTimerParam
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦