一、现象:

使用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》中所述方法解决了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐