记录一次内存泄漏解决

最近在复写一个WebServer服务器程序,运行程序后只要连接建立后一段时间没有请求页面,就会出现如下错误

jyhlinux@ubuntu:~/share/JWebServer$ ./server -p 8888
double free or corruption (out)
Aborted

分析可能是内存泄露或者二次析构的问题,

因为是一段时间后出现的问题,所以我猜测是定时器这个模块的问题,有没有可能是多次close的问题,于是我gdb调试了一下找不到问题,只好通过将每个类的代码和原来代码进行对比,最后才在threadpool.h找到问题,创建线程误写为

m_threads = new pthread_t(m_thread_number); // 创建一个线程id的内存空间

这会导致,后面按数组方式访问第一个后面的线程时非法访问内存地址

应改为

m_threads = new pthread_t[m_thread_number];

心得体会:

遇到内存泄漏可以定位 newfree附近的代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值