我在gnu下载的emacs 27.1和26.3源码包,在win10 wsl ubuntu20.04环境下编译,gcc版本gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
,执行configure时加入选项--without-x
和--with-gnutls=ifavailable
,make和make install后,执行emacs不停的报错Failed select: Invalid argument
,中断正常的组合快捷键操作,请问有人遇到过这个问题么?
有没有对emacs源码比较熟悉的朋友?我只找到在src/process.c
里面connect_network_socket
和wait_reading_process_output
这两个函数可能会报这个错误,但具体怎么解决就没有头绪了
就可以试试用gdb跟踪一下,再那两个地方设置一下断点
原则上是emacs调用pselect报错了,但是打印参数也没觉得哪个有问题,nfds和timeout都在正常值范围内
看那段代码都是比较常规的代码,估计是windows和linux的兼容性问题
我看大家用着都没事啊,我就在网上搜到了个几年前在手机上出同样问题的issue,据说25.2就解决了。。
刚刚在wsl ubuntu20.04下编译的emacs27.1 使用参数 --with-all 运行良好
我在公司和家里的电脑上试了都不行,win10 1909的wsl1
用18.04的ubuntu没有问题,不知道踩到什么坑了。。。
突然发现 emacs-lisp-mode下面就一直出这个错误 Debugger entered–Lisp error: (file-error “Failed select” “Invalid argument”) 看来你这个错误不是唯一的了
我那个后来用gdb看是调用这个函数里面的地方pselect报的error,但确实没看出来哪个参数错了,后来再18.04没这个问题我就没再继续研究了,两个系统差异有点多,gcc版本也不一样
晕,我也没找到问题所在, 目前发现的只影响到elisp的使用
多次调试发现 gdb 调试时候报错的地方有错。比如换linux系统报错应该在65行结果wsl的gdb 报错在120行,估计wsl的底层实现的时候有问题,所以觉得wsl坑太多了,现在写代码还得换到linux 哎。
公司是在windows下的环境,又由于某种原因不能直接用windows版的emacs,所以选择个wsl想先用着