【问题标题】:SIGPIPE crash when switching background task切换后台任务时SIGPIPE崩溃
【发布时间】: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

我该如何解决这个问题?

【问题讨论】:

    标签: iphone ipad crash background-process sigpipe


    【解决方案1】:

    通过setsockopt() 在您的套接字上设置SO_NOSIGPIPE,或忽略所有SIGPIPE 信号: signal(SIGPIPE, SIG_IGN).

    【讨论】:

    • 使用signal(SIGPIPE, SIG_IGN),Xcode 调试器可能仍会因 SIGPIPE 信号而停止。在这种情况下,只需按下 Continue 按钮,Xcode 就会愉快地忽略 SIGPIPE。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多