记录一下几个debug的问题 (1)

问题表征

严重内存泄漏。
我负责的部分使用了一个第三方的库。研究发现两部分代码都没有内存问题。
我们公司的代码全是建立在mempool申请的内存上,好处是只要创建对象,不用析构,省时间而且能控制内存泄露。
第三方的库使用正常heap上分配的内存,析构函数中释放这部分内存。
所以两方配套时就出现了问题:我们的对象从来不析构,导致对象中第三方库的对象也不能正常析构,造成了内存泄漏。

解决方法

  1. 把所有第三方库的动态内存调配切换到mempool上。一劳永逸但是工作量巨大;
  2. 把所有第三方对象建立在函数stack上,用完自动释放。这样对象不能重用;
  3. 手动析构第三方对象。需要小心谨慎,稍有不慎就内存泄漏或者释放野指针。

最终解决方案:3。

4 thoughts on “记录一下几个debug的问题 (1)

  1. There is perceptibly a bunch to identify about this. I suppose you made some good points in features also.

    ReplyReply

Leave a Reply

Your email address will not be published. Required fields are marked *

17 − 5 =

Note: Commenter is allowed to use '@+User+:' to automatically notify your reply to other commenter.