Xcode 只有在使用GDB的分步调试时,才会遇到“断管”错误

Xcode 只有在使用GDB的分步调试时,才会遇到“断管”错误,xcode,sockets,gdb,boost-asio,broken-pipe,Xcode,Sockets,Gdb,Boost Asio,Broken Pipe,有一个unix套接字服务器是用PHP编写的,但我不认为它与此有关。客户端是基于C++编写的,基于Boosi:Asio库。当我正常启动程序时——一切正常,除了一个和套接字通信错误无关的错误,我显然想调试它。但当我开始一步一步地调试它时,我立即收到在套接字上执行写操作的步骤上的“断管”错误。如果在套接字写入操作之后设置了断点,则在下一次尝试跳过写入函数之前,一切正常 花了一整天试图解决这个问题,但没有成功 有人遇到过同样的麻烦吗 在OS X 10.6.7下使用与xCode 3.2.5 64位绑定的G

有一个unix套接字服务器是用PHP编写的,但我不认为它与此有关。客户端是基于C++编写的,基于Boosi:Asio库。当我正常启动程序时——一切正常,除了一个和套接字通信错误无关的错误,我显然想调试它。但当我开始一步一步地调试它时,我立即收到在套接字上执行写操作的步骤上的“断管”错误。如果在套接字写入操作之后设置了断点,则在下一次尝试跳过写入函数之前,一切正常

花了一整天试图解决这个问题,但没有成功

有人遇到过同样的麻烦吗

在OS X 10.6.7下使用与xCode 3.2.5 64位绑定的GDB GDB积极地使用信号。如果要安装信号处理程序,请查看以下示例:


SIGPIPE的默认行为是终止进程,我怀疑您遇到了一个受gdb干扰的时间窗口。也许是这样。。。但该过程接收的是sigabtinn而不是SIGPIPE。另外,我不确定boost::asio是否正在捕获SIGPIPE以返回对应于的错误EPIPE@ibadinovasio不安装信号处理程序,如果默认行为不合适,应用程序应该安装信号处理程序。因此,SIGABRT更为重要confusing@Ibadinov我建议你用更多的信息编辑你的问题。我不清楚西格伯特来自哪里,也许这是个意外的例外。