切换后台任务时SIGPIPE崩溃
Posted
技术标签:
【中文标题】切换后台任务时SIGPIPE崩溃【英文标题】:SIGPIPE crash when switching background task 【发布时间】:2011-08-08 12:30:34 【问题描述】:在将我的应用程序发送到后台、加载新应用程序、将设备切换到睡眠模式、唤醒设备、关闭新应用程序然后从后台任务打开我的应用程序时,我遇到了奇怪的崩溃。将出现黑屏,我无法使用主页按钮退出此黑屏,并且在调试器中显示以下消息:
节目接收信号:“SIGPIPE”。 数据格式化程序不可用(错误 调用 dlopen 为: “/开发者/usr/lib/libXcodeDebuggerSupport.dylib”: "dlopen(/Developer/usr/lib/libXcodeDebuggerSupport.dylib, 10): 没有找到合适的图片。做过 找: /Developer/usr/lib/libXcodeDebuggerSupport.dylib: 地址空间不足 /Developer/usr/lib/libXcodeDebuggerSupport.dylib: stat() 失败,错误号=868226285
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:通过setsockopt()
在您的套接字上设置SO_NOSIGPIPE
,或忽略所有SIGPIPE
信号:
signal(SIGPIPE, SIG_IGN)
.
【讨论】:
使用signal(SIGPIPE, SIG_IGN)
,Xcode 调试器可能仍会因 SIGPIPE 信号而停止。在这种情况下,只需按下 Continue 按钮,Xcode 就会愉快地忽略 SIGPIPE。以上是关于切换后台任务时SIGPIPE崩溃的主要内容,如果未能解决你的问题,请参考以下文章