最近在项目中使用了libev,遇到一个很奇怪的crash,服务器运行随机时间后有一定的概率奔溃,输出的最后一行log是: (libev) cannot allocate xxx bytes, aborting. 因为捕捉了SIGINT信号,所以可以确定崩溃就是由于libev的这个abort.开始是以为内存越界之类,排查了strncpy, memset,memcpy等使用的地方,并且使用valgrind工具检查,并没有发现内存操作异常的地方.在网上搜索了很久也没找到相关的内容.后来通过客户端的行为…