Gdb Eclipse CDT:线程正在调试模式下获取SIGPIPE

Gdb Eclipse CDT:线程正在调试模式下获取SIGPIPE,gdb,eclipse-cdt,sigpipe,Gdb,Eclipse Cdt,Sigpipe,有一个用C语言编写的工具,基于套接字编程和多线程。 如果我只是简单地运行这个工具,就不会有错误,而且这个工具的工作也完美无缺 但是,如果我在调试模式下运行该工具,线程之间的切换将引发SIGPIPE信号,因此数据无法从该工具传输到其服务器 使用信号(SIGPIPE,SIG_IGN)处理SIGPIPE会使线程工作吗 据我所知,这是由于线程之间的进程间通信失败而引起的。如果是,那么如何调试这样的多线程应用程序呢 请告诉我如何处理这个问题 这是通过小心地进入线程来解决的。 该工具不仅创建进程,还创建线程

有一个用C语言编写的工具,基于套接字编程和多线程。 如果我只是简单地运行这个工具,就不会有错误,而且这个工具的工作也完美无缺

但是,如果我在调试模式下运行该工具,线程之间的切换将引发SIGPIPE信号,因此数据无法从该工具传输到其服务器

使用信号(SIGPIPE,SIG_IGN)处理SIGPIPE会使线程工作吗

据我所知,这是由于线程之间的进程间通信失败而引起的。如果是,那么如何调试这样的多线程应用程序呢


请告诉我如何处理这个问题

这是通过小心地进入线程来解决的。 该工具不仅创建进程,还创建线程,因此不正确的gdbinit设置和步进会引发SIGPIPE信号

这在另一篇相关文章中有说明