0

有一个用 C 语言编写的工具,基于套接字编程和多线程。如果我只是简单地运行该工具,则不会出现错误,并且该工具可以完美地工作。

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

使用 SIGNAL(SIGPIPE, SIG_IGN) 处理 SIGPIPE 会使线程工作吗?

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

请建议我处理此问题的方法。

4

1 回答 1

0

通过仔细进入线程解决了这个问题。该工具不仅会创建进程,还会创建线程,因此不正确的 gdbinit 设置和步进会引发 SIGPIPE 信号。

这在此处的其他相关帖子中有所说明。

于 2014-05-30T12:06:42.267 回答