From 3142b79d8a206c97c9b4996d2e5bfc2e9a6b2570 Mon Sep 17 00:00:00 2001 From: ganchuantao1 Date: Thu, 29 May 2025 13:58:10 +0800 Subject: [PATCH] =?UTF-8?q?=20=20=20=20=E5=A2=9E=E5=8A=A0=E5=AE=9A?= =?UTF-8?q?=E5=88=B6=E8=83=BD=E5=8A=9B=E5=BC=80=E6=94=BE=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B5=84=E6=96=99=20=20=20=20=20Signed-off-by:ganchua?= =?UTF-8?q?ntao1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ganchuantao1 --- .../dfx/hidebug-guidelines-ndk.md | 3 + .../_hi_debug.md | 69 +++++++++++++++- .../_hi_debug___malloc_dispatch.md | 79 +++++++++++++++++++ .../hidebug_8h.md | 5 +- .../hidebug__type_8h.md | 3 +- 5 files changed, 155 insertions(+), 4 deletions(-) create mode 100644 zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug___malloc_dispatch.md diff --git a/zh-cn/application-dev/dfx/hidebug-guidelines-ndk.md b/zh-cn/application-dev/dfx/hidebug-guidelines-ndk.md index 89bbd0536a8..cc916be2a33 100644 --- a/zh-cn/application-dev/dfx/hidebug-guidelines-ndk.md +++ b/zh-cn/application-dev/dfx/hidebug-guidelines-ndk.md @@ -19,6 +19,9 @@ | OH_HiDebug_DestroyBacktraceObject | 销毁创建的用于栈回溯及栈解析对象。
**说明**:从API version 20开始,支持该接口。 | | OH_HiDebug_BacktraceFromFp | 获取从给定的栈帧指针开始的回溯帧。
**说明**:从API version 20开始,支持该接口。 | | OH_HiDebug_SymbolicAddress | 通过给定的程序计数器(PC)获取详细的符号信息。
**说明**:从API version 20开始,支持该接口。 | +| OH_HiDebug_SetMallocDispatchTable | 设置基础库C库MallocDisaptch表,用于替换开发者自定义的内存操作函数(例如:malloc/free/calloc/realloc/mmap/munmap)
**说明**:从API version 20开始,支持该接口。 | +| OH_HiDebug_GetDefaultMallocDispatchTable | 获取基础库C库当前默认MallocDispatch表,用于后续恢复。
**说明**:从API version 20开始,支持该接口。 | +| OH_HiDebug_RestoreMallocDispatchTable | 恢复基础库C库MallocDispatch表。
**说明**:从API version 20开始,支持该接口。 | API接口的具体使用说明(参数使用限制、具体取值范围等)请参考[HiDebug](../reference/apis-performance-analysis-kit/_hi_debug.md)。 diff --git a/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug.md b/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug.md index 0cff708df07..8832174e612 100644 --- a/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug.md +++ b/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug.md @@ -31,7 +31,7 @@ | struct  [HiDebug_SystemMemInfo](_hi_debug___system_mem_info.md) | 系统内存信息结构类型定义。 | | struct  [HiDebug_NativeMemInfo](_hi_debug___native_mem_info.md) | 应用程序进程本机内存信息结构类型定义。 | | struct  [HiDebug_MemoryLimit](_hi_debug___memory_limit.md) | 应用程序进程内存限制结构类型定义。 | - +| struct  [HiDebug_MallocDispatch](_hi_debug___malloc_dispatch.md) | 应用程序进程可替换/恢复的MallocDispatch表结构类型定义。 | ### 宏定义 @@ -105,7 +105,10 @@ | void [OH_HiDebug_GetAppMemoryLimit](#oh_hidebug_getappmemorylimit) ([HiDebug_MemoryLimit](_hi_debug___memory_limit.md) \*memoryLimit) | 获取应用程序进程的内存限制。 | | [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) | 启动应用trace采集。 | | [HiDebug_ErrorCode](#hidebug_errorcode) [OH_HiDebug_StopAppTraceCapture](#oh_hidebug_stopapptracecapture) () | 停止采集应用程序trace。 | -| [HiDebug_ErrorCode](#hidebug_errorcode) [OH_HiDebug_GetGraphicsMemory](#oh_hidebug_getgraphicsmemory) (uint32_t \*value) | 获取应用gpu显存大小。 | +| [HiDebug_ErrorCode](#hidebug_errorcode) [OH_HiDebug_GetGraphicsMemory](#oh_hidebug_getgraphicsmemory) (uint32_t \*value) | 获取应用gpu显存大小。 | +| [HiDebug_ErrorCode](#hidebug_errorcode) [OH_HiDebug_SetMallocDispatchTable](#oh_hidebug_setmallocdispatchtable) ([HiDebug_MallocDispatchTable](_hi_debug___malloc_dispatch.md) \*table) | 设置基础库C库MallocDisaptch表,用于替换开发者自定义的内存操作函数(例如:malloc/free/calloc/realloc/mmap/munmap)。 | +| [HiDebug_MallocDispatchTable*](_hi_debug___malloc_dispatch.md) [OH_HiDebug_GetDefaultMallocDispatchTable](#oh_hidebug_getdefaultmallocdispatchtable) () | 获取基础库C库当前默认MallocDispatch表,用于后续恢复。 | +| void [OH_HiDebug_RestoreMallocDispatchTable](#oh_hidebug_restoremallocdispatchtable) () | 恢复基础库C库MallocDispatch表。 | ## 宏定义说明 @@ -773,3 +776,65 @@ HiDebug_ErrorCode OH_HiDebug_StopAppTraceCapture () 11400104 - 系统内部错误。 11400105 - 当前没有trace正在运行 + + +### OH_HiDebug_SetMallocDispatchTable() + +``` +HiDebug_ErrorCode OH_HiDebug_SetMallocDispatchTable (HiDebug_MallocDispatch * mallocDispatch) +``` +**描述** +设置基础库C库MallocDispatch表内存分配操作函数(malloc/free/calloc/realloc/mmap/munmap),如不替换,则设置对应函数指针为NULL。 +nullptr是C++ 11中引入的,C中只有NULL。 + +**起始版本:** 20 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| mallocDispatch | 指向[HiDebug_MallocDispatch](_hi_debug___malloc_dispatch.md)结构体指针。 | + +**返回:** + +0 - 成功。 + +401 - 无效参数,所传递参数为空指针。 + + +### OH_HiDebug_GetDefaultMallocDispatchTable() + +``` +HiDebug_MallocDispatch* OH_HiDebug_GetDefaultMallocDispatchTable(void) +``` +**描述** +获取基础库C库当前默认MallocDispatch表,用于后续恢复。 + +**起始版本:** 20 + +**参数:** + +无 + +**返回:** + +指向[HiDebug_MallocDispatch](_hi_debug___malloc_dispatch.md)结构体指针。 + + +### OH_HiDebug_RestoreMallocDispatchTable + +``` +void OH_HiDebug_RestoreMallocDispatchTable(void) +``` +**描述** +恢复基础库C库MallocDispatch表。 + +**起始版本:** 20 + +**参数:** + +无 + +**返回:** + +无 diff --git a/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug___malloc_dispatch.md b/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug___malloc_dispatch.md new file mode 100644 index 00000000000..6c5a0c1f550 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-performance-analysis-kit/_hi_debug___malloc_dispatch.md @@ -0,0 +1,79 @@ +# HiDebug_MallocDispatch + + +## 概述 + +应用程序进程可替换/恢复的MallocDispatch表结构类型定义。 + +**起始版本:** 20 + +**相关模块:**[HiDebug](_hi_debug.md) + +**所在头文件:** [hidebug_type.h](hidebug__type_8h.md) + +## 汇总 + + +### 成员变量 + +| 名称 | 描述 | +| -------- | -------- | +| void* (*)(size_t) [malloc](#malloc) | 开发者自定义malloc 函数指针。 | +| void* (*)(size_t, size_t) [calloc](#calloc) | 开发者自定义calloc 函数指针。 | +| void* (*)(void*, size_t) [realloc](#realloc) | 开发者自定义realloc 函数指针。 | +| void (*)(void*) [free](#free) | 开发者自定义free 函数指针。 | +| void* (*)(void*, size_t, int, int, int, off_t) [mmap](#mmap) | 开发者自定义mmap 函数指针。 | +| void (*)(void*, size_t) [munmap](#munmap) | 开发者自定义munmap 函数指针。 | + + +## 结构体成员变量说明 + + +### malloc + +``` +void* (*)(size_t) HiDebug_MallocDispatch::malloc +``` +**描述** +开发者自定义malloc函数指针。 + + +### calloc + +``` +void* (*)(size_t, size_t) HiDebug_MallocDispatch::calloc +``` +**描述** +开发者自定义calloc函数指针。 + + +### realloc +``` +void* (*)(void*, size_t) HiDebug_MallocDispatch::realloc +``` +**描述** +开发者自定义realloc函数指针。 + + +### free +``` +void (*)(void*) HiDebug_MallocDispatch::free +``` +**描述** +开发者自定义free函数指针。 + + +### mmap +``` +void* (*)(void*, size_t, int, int, int, off_t) HiDebug_MallocDispatch::mmap +``` +**描述** +开发者自定义mmap函数指针。 + + +### munmap +``` +void (*)(void*, size_t) HiDebug_MallocDispatch::munmap +``` +**描述** +开发者自定义munmap函数指针。 diff --git a/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug_8h.md b/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug_8h.md index 0cfc299400a..958b1cfcffb 100644 --- a/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug_8h.md +++ b/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug_8h.md @@ -32,4 +32,7 @@ | void [OH_HiDebug_GetAppMemoryLimit](_hi_debug.md#oh_hidebug_getappmemorylimit) ([HiDebug_MemoryLimit](_hi_debug___memory_limit.md) \*memoryLimit) | 获取应用程序进程的内存限制。 | | [HiDebug_ErrorCode](_hi_debug.md#hidebug_errorcode) [OH_HiDebug_StartAppTraceCapture](_hi_debug.md#oh_hidebug_startapptracecapture) ([HiDebug_TraceFlag](_hi_debug.md#hidebug_traceflag) flag, uint64_t tags, uint32_t limitSize, char \*fileName, uint32_t length) | 启动应用trace采集。 | | [HiDebug_ErrorCode](_hi_debug.md#hidebug_errorcode) [OH_HiDebug_StopAppTraceCapture](_hi_debug.md#oh_hidebug_stopapptracecapture) () | 停止采集应用程序trace。 | -| [HiDebug_ErrorCode](_hi_debug.md#hidebug_errorcode) [OH_HiDebug_GetGraphicsMemory](_hi_debug.md#oh_hidebug_getgraphicsmemory) (uint32_t \*value) | 获取应用gpu显存大小。 | +| [HiDebug_ErrorCode](_hi_debug.md#hidebug_errorcode) [OH_HiDebug_GetGraphicsMemory](_hi_debug.md#oh_hidebug_getgraphicsmemory) (uint32_t \*value) | 获取应用gpu显存大小。 | +| [HiDebug_ErrorCode](_hi_debug.md#hidebug_errorcode) [OH_HiDebug_SetMallocDispatchTable](_hi_debug.md#oh_hidebug_setmallocdispatchtable) ([HiDebug_MallocDispatchTable](_hi_debug___malloc_dispatch.md) \*table) | 设置基础库C库MallocDisaptch表,用于替换开发者自定义的内存操作函数(例如:malloc/free/calloc/realloc/mmap/munmap)。 | +| [HiDebug_MallocDispatchTable*](_hi_debug___malloc_dispatch.md) [OH_HiDebug_GetDefaultMallocDispatchTable](_hi_debug.md#oh_hidebug_getdefaultmallocdispatchtable ) () | 获取基础库C库当前默认MallocDispatch表,用于后续恢复。 | +| void [OH_HiDebug_RestoreMallocDispatchTable](_hi_debug.md#oh_hidebug_restoremallocdispatchtable) () | 恢复基础库C库MallocDispatch表。 | diff --git a/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug__type_8h.md b/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug__type_8h.md index e5f460435d8..092f8edca2b 100644 --- a/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug__type_8h.md +++ b/zh-cn/application-dev/reference/apis-performance-analysis-kit/hidebug__type_8h.md @@ -24,7 +24,8 @@ HiDebug模块代码结构体定义。 | struct  [HiDebug_ThreadCpuUsage](_hi_debug___thread_cpu_usage.md) | 应用程序所有线程的CPU使用率结构体定义。 | | struct  [HiDebug_SystemMemInfo](_hi_debug___system_mem_info.md) | 系统内存信息结构类型定义。 | | struct  [HiDebug_NativeMemInfo](_hi_debug___native_mem_info.md) | 应用程序进程本机内存信息结构类型定义。 | -| struct  [HiDebug_MemoryLimit](_hi_debug___memory_limit.md) | 应用程序进程内存限制结构类型定义。 | +| struct  [HiDebug_MemoryLimit](_hi_debug___memory_limit.md) | 应用程序进程内存限制结构类型定义。 | +| struct  [HiDebug_MallocDispatch](_hi_debug___malloc_dispatch.md) | 应用程序进程可替换/恢复的MallocDispatch表结构类型定义。 | ### 宏定义 -- Gitee