最近在研究websocket的路上愈走愈远了,从开始只是搭建聊天室到单机服务如何支持百万连接。现在是在弄epoll的道路上,经历一路坎坷。这里记录一下心路历程。

问题: epoll这只能运行在linux,有问题没发调试,蛋疼吗?

首先想到装个docker,运行个centos,然后对着docker又是一顿撸。还是没发调试,

gdb 也是可以调试go程序的,问题是,这tm一个项目几百个文件都有了,我gdb怎么断点啊,大概的思路就是从函数调用的地方开始入手,这啥时候是个头啊,简单的还行,果断放弃了

go get -u github.com/go-delve/delve/cmd/dlv

goland配置

Run/Edit configurations


host配置

-p 2345:2345

编译调试

exec ./main--

dlv listen以后怎么退出来?

不好意思,我也没有找到正确的姿势,万能的方式,新启动一个终端kill掉他,然后会问,docker怎么attach以后还是当前窗口,这个....

看一下我调试解决的bug

报错信息:

hub.Wait()

wait函数的代码:

next一直运行,看一下有连接进来的情况:


syscall.EpollWait