当前位置: 首页 > news >正文

最好的做网站公司德阳市建设管理一体化平台网站

最好的做网站公司,德阳市建设管理一体化平台网站,重庆网站推广工具,网站二级栏目数量问题记录: 在刚完成mymuduo库之后,写了一个简单的测试服务器, 但是在服务器运行后直接报错: cherryhcss-ecs-4995:~/mymuduo/example$ ./testserver Segmentation fault (core dumped)出现多错误这通常意味着程序试图访问其内存空…

问题记录:
在刚完成mymuduo库之后,写了一个简单的测试服务器,
但是在服务器运行后直接报错:

cherry@hcss-ecs-4995:~/mymuduo/example$ ./testserver
Segmentation fault (core dumped)

出现多错误这通常意味着程序试图访问其内存空间中未分配(或不允许)的部分。

所以我决定先使用gdb进行一下简单的调试:

gdb ./testserver

把程序跑起来之后马上定位到了报错位置:

Program received signal SIGSEGV, Segmentation fault.
EventLoop::updateChannel (this=0x7fffffffdd60, channel=0x555555572eb0) at /home/cherry/mymuduo/EventLoop.cc:126
126         poller_->updateChannel(channel);

我再查看代码:

125 void EventLoop::updateChannel(Channel *channel) {
126 	poller_->updateChannel(channel);
127 }

既然是段错误,说明我们访问了不被允许访问的内存,或者操作了不被允许操作的内存
接下来我们有以下三个主要的思路:

(gdb) print poller_ #poller是否是空
(gdb) print channel #channel是否为空
(gdb) print *channel #如果channel不是空,那么它是否指向了有效对象,该对象状态是否正常?
(gdb) backtrace #如果都正常,查看调用栈,是哪里调用了 EventLoop::updateChannel 方法

但是比较悲剧的是,我直接 print poller_ 就发现我们重要的poller对象竟然是空!

所以我马上去看了一下构造函数代码是否正常

EventLoop::EventLoop(): looping_(false), quit_(false), callingPendingFunctors_(false), threadId_(CurrentThread::tid()), poller_(Poller::newDefaultPoller(this)), wakeupFd_(createEventfd()), wakeupChannel_(new Channel(this, wakeupFd_)) 

在构造函数中, poller_的初始化是通过newDefaultPoller来完成的,那么去看看它是否正常工作:

Poller* Poller::newDefaultPoller(EventLoop *loop) {if (::getenv("MUDUO_USE_POLL")) {return nullptr; // 生成poll的实例} else {return nullptr; // 生成epoll的实例}
}

好巧不巧,我们竟然在生成epoll实例的地方返回了一个空!之前在写这个代码的时候还没有完成EpollPoller.h文件的书写,为了防止部分编译报错所以先写成空了。

更改代码如下:

#include "EpollPoller.h"
return new EPollPoller(loop);
http://www.yayakq.cn/news/236250/

相关文章:

  • 网站建设与管理教学方案华东建设安装有限公司网站
  • 南山网站 建设seo信科做航模的网站
  • 马鞍山网站开发流程电商设计素材
  • 企业建设网站项目背景网站规划的基本内容不包括
  • 定兴网站建设公司广告设计在哪里学
  • 大学生网站开发接单网站建设的中期检查表
  • 为什么做红酒网站怎么做网站邮箱
  • 网站建设有哪些软件有哪些内容凡客诚品配送方式
  • 企业网站的建设目的有哪些有赞商城网站建设
  • jsp做的简单的图书馆网站快速提升网站权重
  • 一流的购物网站建设seo免费资源大全
  • 诊所网站模板宁波网络公司做网站
  • 深圳网站建设与网站制作wordpress 调用相册
  • 谷歌建站90设计赚钱
  • 商丘做网站的费用企业课程培训
  • ppt模板去哪个网站下载Wordpress一写文章就卡了
  • 建站中企动力昆明网架公司
  • 安徽合肥建设厅网站广东深圳网站设计室
  • 金融商城快捷申请网站模板下载网站开发 工资高吗
  • 网站开发计入什么科目wordpress建站知乎
  • 做视频链接的网站备案怎么关闭网站
  • 无锡企业网站做p2p网站的主页模板
  • 网站系统下载不了文件芜湖有哪些知名企业
  • 怎么在网站上做视频seo营销推广平台
  • 阜阳网站开发中国企业500强2018
  • 江苏交通厅门户网站建设工程国际交流合作网站建设方案
  • 中国室内设计网站排名做外贸需要具备什么条件
  • 用阿里云做网站会不会被黑网站项目建设策划方案
  • 网站视觉设计谷歌浏览器网页版入口
  • 国外建站工具北京网站建设的服务