iOS异常处理:mach_msg_trap处异常

问题描述:

app运行的时候,xcode中断,显示信息:

libsystem_kernel.dylib`mach_msg_trap:

0x194e6ce74:  movn  x16, #30

0x194e6ce78:  svc    #128

0x194e6ce7c:  ret    -----------> 在这里中断

(这时候,点运行按钮,app能继续运行,-_-#  我开始以为这是xcode某种提示,实际运行可能不会有问题;实际情况是:如果不是调试模式,在此情况下,app会异常退出)

解决思路:

跟踪断点,在lldb下敲入bt

(lldb) bt

* thread #1: tid = 0x3003d, 0x0000000183518fd8 libsystem_kernel.dylib`mach_msg_trap + 8, queue = 'com.apple.main-thread', stop reason = signal SIGPIPE

……

原来是收到了sigpipe消息,该消息的默认处理方法是退出程序;所以就得在程序中找可能产生该消息的代码:某fd已释放,却依然write,操作两次就会产生sigpipe消息

在lldb调试窗口输入:process handle SIGPIPE -s false   这样调试的时候,app收到sigpipe信号,Xcode就不会中断了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天碰巧下载了QQ浏览器iOS版本,居然一启动就挂了。后来从手机里面把崩溃信息导出来,仔细研究下,把研究的结果放到...
    yqmfly阅读 8,337评论 1 1
  • 关键时刻,第一时间送达! 问题种类 时间复杂度 在集合里数据量小的情况下时间复杂度对于性能的影响看起来微乎其微。但...
    C9090阅读 4,494评论 0 1
  • two Last login: Tue Aug 4 17:09:57 on ttys000 yushengyang...
    aofeilin阅读 4,731评论 1 9
  • 首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测。但对于复杂情况可能就需要用...
    攻克乃还_阅读 6,370评论 0 7
  • [转]浅谈LLDB调试器文章来源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc阅读 7,528评论 2 6

友情链接更多精彩内容