Eclipse CDT:线程在调试模式下获取 SIGPIPE
Posted
技术标签:
【中文标题】Eclipse CDT:线程在调试模式下获取 SIGPIPE【英文标题】:Eclipse CDT: Thread is getting SIGPIPE in debugging mode 【发布时间】:2014-05-28 12:42:58 【问题描述】:有一个用 C 语言编写的工具,基于套接字编程和多线程。 如果我只是简单地运行该工具,则不会出现错误,并且该工具可以完美地工作。
但如果我在调试模式下运行该工具,线程之间的切换会引发 SIGPIPE 信号,因此数据无法从该工具传输到其服务器。
使用 SIGNAL(SIGPIPE, SIG_IGN) 处理 SIGPIPE 会使线程工作吗?
据我了解,这是由于线程之间的进程间通信失败而引起的。如果是,那么如何调试这样的多线程应用程序?
请建议我处理此问题的方法。
【问题讨论】:
【参考方案1】:通过仔细进入线程解决了这个问题。 该工具不仅会创建进程,还会创建线程,因此不正确的 gdbinit 设置和步进会引发 SIGPIPE 信号。
其他相关帖子here对此进行了说明。
【讨论】:
以上是关于Eclipse CDT:线程在调试模式下获取 SIGPIPE的主要内容,如果未能解决你的问题,请参考以下文章
windows下使用mingw/gdb无法调试eclipse helios cdt上的小程序,控制台死机
使用 Eclipse Mars CDT 进行 JTag 调试:“程序文件不存在”
使用 Eclipse CDT/RSE/RDT 远程调试 C++ 应用程序