一、现象:
使用vscode调试C/C++程序时报错:“Program received signal SIGINT,Interrupt.0x...... in epoll_wait”。然后程序退出了。但是如果不调试,只是运行程序则不会退出。
二、解决方法:
针对此现象我尝试使用各种解决方法:
(1)我按照文章《Pass SIGINT while pressing ctrl+c on using debugger in vscode》中提出的解决方法,在vscode的DEBUG CONSOLE中输入
-exec handle SIGINT pass
-exec handle SIGINT nostop
发现无法解决。
(2)我尝试忽略SIG_IGN信号,在程序中添加语句如下,但也无法解决。
signal(SIGINT,SIG_IGN);
(3)问题其实是出在gdb和epoll上,最后按照文章《gdb 调试带有 epoll_wait 非正常返回 -1》中所述方法解决了。