【嵌入式】如何替换malloc

本文介绍了在嵌入式系统中,特别是在Linux和Unix环境下,如何替换标准库Glibc中的malloc函数。通过使用预加载机制,可以实现自定义内存管理方案,如xsmemcheck.so提供的参考实现。文章提供了详细的方法一,并提到了其他五种替代方法。
摘要由CSDN通过智能技术生成

方法一

使用 LD_PRELOAD 字段的预加载方式

LD_PRELOAD=/usr/lib/libxsmemcheck.so  mem-test

xsmemcheck.so 参考实现代码如下

void *malloc(size_t size)
{
    if (THIS->real_malloc == NULL) THIS->real_malloc  = dlsym(RTLD_NEXT, "malloc");
    struct timespec tv; 
    clock_gettime(CLOCK_MONOTONIC, &tv);
    void *ret = THIS->real_malloc(size);
    fprintf(stderr, "%02ld:%02d:%02d.%06ld [%ld:%lx] xsmemcheck malloc size %ld result "FMT_P"\n", (tv.tv_sec/3600) % 24 ,(int)((tv.tv_sec/60) % 60),(int)(tv.tv_sec % 60),tv.tv_nsec / 1000, getpid(), pthread_self(), size, ret);
    return ret;
}

参考文档

在应用程序中替换Linux中Glibc的malloc内存申请的6种方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bigan(安)

打赏100可获技术支持一次

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值