Malloc 跟踪

为了与跟踪工具一起使用 Malloc 跟踪提供了对 malloc 子系统的可选扩展。

mallocreallocfree 子例程的跟踪被记录下来以便在问题确定和性能中使用。

缺省情况下不启用 Malloc 跟踪,但可通过 MALLOCDEBUG 环境变量在进程启动前对其进行启用和配置:

malloc 跟踪所记录的事件

用于 Malloc 跟踪的跟踪钩标识如下:
  • HKWD_LIBC_MALL_SUBSYSTEM
  • HKWD_LIBC_MALL_INTERNAL

当对 HKWD_LIBC_MALL_SUBSYSTEM 启用跟踪时,每次调用 mallocreallocfree 子例程时输入的参数和返回值都被记录在跟踪子系统中。

当对 HKWD_LIBC_MALL_INTERNAL 启用了跟踪并且启用了 Malloc 检测调试工具时,每当 Malloc 检测在 malloc 子系统的内部数据结构中检测到错误时,Malloc 跟踪将记录跟踪事件。

启用 malloc 跟踪

缺省情况下不启用 Malloc 跟踪。 它是通过设置 MALLOCDEBUG 环境变量来启用和配置的。 要启用 Malloc 跟踪,请通过输入以下命令行来设置 MALLOCDEBUG 环境变量:
MALLOCDEBUG=trace
要启用其他 Malloc Debug 功能部件,请如下设置 MALLOCDEBUG 环境变量:
MALLOCDEBUG=[trace, other_option]

限制