关于kamailio-4.0.3版本,内存分配

环境: kamailio.4.0.3+centos+mysql


情况描述:
    (1)对于modules/xcap_server 进行功能的扩充,  当客户端发送HTTP PUT请求,根据打印出的内存分配LOG, 其中申请和释放的内存都能完全匹配[能看成内存未泄露吗?]

    但是使用free命令查看系统会发现少了接近3M的内存泄露。

    (2)  若将使用的kamailio提供的pkg_*的函数的 变为C语言提供的内存函数(malloc等),则不会出现内存泄露。

    (3)  当多次处理PUT请求之后, q_malloc(mem): line 156  

LOG(L_CRIT, "BUG: qm_*: prev. fragm. tail overwritten(%lx, %lx)[%p:%p]!""\n",
PREV_FRAG_END(f)->check1, PREV_FRAG_END(f)->check2, f,
(char*)f+sizeof(struct qm_frag));

        会打印出来。  可不明白这样的错误是怎么造成的,如何避免。


注: 每次内存泄露的比较多,但代码中分配的内存每次都控制在1000字节之内。


我个人觉得应该是自己代码的出的问题,可根据(1)(2)感觉自己的代码也没问题的。

也许自己对于pkg_*的代码不太理解,希望大神能科普一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值