记一次iOS调试bug

启动后app崩溃,日志无信息,于是使用lldb的waitfor调试,得到崩溃点

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00000001f91ff0dc libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x00000001f9278094 libsystem_pthread.dylib`pthread_kill$VARIANT$mp + 380
    frame #2: 0x00000001f9157ea8 libsystem_c.dylib`abort + 140
    frame #3: 0x00000001f8824788 libc++abi.dylib`abort_message + 132
    frame #4: 0x00000001f8824934 libc++abi.dylib`default_terminate_handler() + 308
    frame #5: 0x00000001f883be00 libobjc.A.dylib`_objc_terminate() + 124
    frame #6: 0x00000001f8830838 libc++abi.dylib`std::__terminate(void (*)()) + 16
    frame #7: 0x00000001f88308c4 libc++abi.dylib`std::terminate() + 84
    frame #8: 0x00000001f883bd5c libobjc.A.dylib`objc_terminate + 12
    frame #9: 0x00000001f90a17e8 libdispatch.dylib`_dispatch_client_callout + 36
    frame #10: 0x00000001f90465dc libdispatch.dylib`_dispatch_block_invoke_direct$VARIANT$mp + 224
    frame #11: 0x00000001fc01a040 FrontBoardServices`__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 40
    frame #12: 0x00000001fc019cdc FrontBoardServices`-[FBSSerialQueue _performNext] + 408
    frame #13: 0x00000001fc01a294 FrontBoardServices`-[FBSSerialQueue _performNextFromRunLoopSource] + 52
    frame #14: 0x00000001f95f4f1c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
    frame #15: 0x00000001f95f4e9c CoreFoundation`__CFRunLoopDoSource0 + 88
    frame #16: 0x00000001f95f4784 CoreFoundation`__CFRunLoopDoSources0 + 176
    frame #17: 0x00000001f95ef6c0 CoreFoundation`__CFRunLoopRun + 1004
    frame #18: 0x00000001f95eefb4 CoreFoundation`CFRunLoopRunSpecific + 436
    frame #19: 0x00000001fb7f079c GraphicsServices`GSEventRunModal + 104
    frame #20: 0x0000000225e50c38 UIKitCore`UIApplicationMain + 212
    frame #21: 0x0000000104280f98 ALS.dylib`___lldb_unnamed_symbol4$$ALS.dylib + 400
    frame #22: 0x0000000100b99d44 g37`___lldb_unnamed_symbol22358$$g37 + 92
    frame #23: 0x000000010073ffd8 g37`___lldb_unnamed_symbol151$$g37 + 376
    frame #24: 0x00000001f90b28e0 libdyld.dylib`start + 4

从此崩溃点可知是c++异常,但由于使用dispatch无法看到错误来源,于是根据objc_terminate,在下次启动断在objc_exception_throw,得到结果:

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
  * frame #0: 0x00000001f883b9c0 libobjc.A.dylib`objc_exception_throw
    frame #1: 0x00000001f957f9bc CoreFoundation`-[NSObject(NSObject) doesNotRecognizeSelector:] + 140
    frame #2: 0x00000001f96689c8 CoreFoundation`___forwarding___ + 1408
    frame #3: 0x00000001f966a65c CoreFoundation`_CF_forwarding_prep_0 + 92
    frame #4: 0x00000001018bd1b8 g37`___lldb_unnamed_symbol71594$$g37 + 48
    frame #5: 0x00000001018bdf18 g37`___lldb_unnamed_symbol71609$$g37 + 216
    frame #6: 0x00000001018bddf4 g37`___lldb_unnamed_symbol71608$$g37 + 260
    frame #7: 0x00000001018c050c g37`___lldb_unnamed_symbol71621$$g37 + 132
    frame #8: 0x00000001018c09c8 g37`___lldb_unnamed_symbol71623$$g37 + 96
    frame #9: 0x00000001018bd11c g37`___lldb_unnamed_symbol71593$$g37 + 132
    frame #10: 0x00000001018c70e4 g37`___lldb_unnamed_symbol71782$$g37 + 1588
    frame #11: 0x00000001018c75ec g37`___lldb_unnamed_symbol71788$$g37 + 32
    frame #12: 0x00000001018e33d8 g37`___lldb_unnamed_symbol72456$$g37 + 196
    frame #13: 0x00000001f954c54c CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 216
    frame #14: 0x00000001018e318c g37`___lldb_unnamed_symbol72455$$g37 + 656
    frame #15: 0x00000001018f0b44 g37`___lldb_unnamed_symbol72812$$g37 + 44
    frame #16: 0x00000001018f0e1c g37`___lldb_unnamed_symbol72813$$g37 + 576
    frame #17: 0x0000000100adae64 g37`___lldb_unnamed_symbol22547$$g37 + 796
    frame #18: 0x00000001043dd638 ALS.dylib`___lldb_unnamed_symbol12$$ALS.dylib + 796
    frame #19: 0x0000000225e480f0 UIKitCore`-[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 412
    frame #20: 0x0000000225e49854 UIKitCore`-[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 3352
    frame #21: 0x0000000225e4efe0 UIKitCore`-[UIApplication _runWithMainScene:transitionContext:completion:] + 1540
    frame #22: 0x00000002257122a4 UIKitCore`__111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 776
    frame #23: 0x000000022571a83c UIKitCore`+[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 160
    frame #24: 0x0000000225711f28 UIKitCore`-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 236
    frame #25: 0x0000000225712818 UIKitCore`-[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 1064
    frame #26: 0x0000000225710b64 UIKitCore`__82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 744
    frame #27: 0x000000022571082c UIKitCore`-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 428
    frame #28: 0x000000022571536c UIKitCore`__125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 220
    frame #29: 0x0000000225716150 UIKitCore`_performActionsWithDelayForTransitionContext + 112
    frame #30: 0x0000000225715224 UIKitCore`-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 244
    frame #31: 0x0000000225719f24 UIKitCore`-[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 360
    frame #32: 0x0000000225e4d5e8 UIKitCore`-[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 540
    frame #33: 0x0000000225a49e04 UIKitCore`-[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 360
    frame #34: 0x00000001fbfdf9fc FrontBoardServices`-[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 440
    frame #35: 0x00000001fbfe940c FrontBoardServices`__56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 256
    frame #36: 0x00000001fbfe8c14 FrontBoardServices`__40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 64
    frame #37: 0x00000001f90a17d4 libdispatch.dylib`_dispatch_client_callout + 16
    frame #38: 0x00000001f90465dc libdispatch.dylib`_dispatch_block_invoke_direct$VARIANT$mp + 224
    frame #39: 0x00000001fc01a040 FrontBoardServices`__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 40
    frame #40: 0x00000001fc019cdc FrontBoardServices`-[FBSSerialQueue _performNext] + 408
    frame #41: 0x00000001fc01a294 FrontBoardServices`-[FBSSerialQueue _performNextFromRunLoopSource] + 52
    frame #42: 0x00000001f95f4f1c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
    frame #43: 0x00000001f95f4e9c CoreFoundation`__CFRunLoopDoSource0 + 88
    frame #44: 0x00000001f95f4784 CoreFoundation`__CFRunLoopDoSources0 + 176
    frame #45: 0x00000001f95ef6c0 CoreFoundation`__CFRunLoopRun + 1004
    frame #46: 0x00000001f95eefb4 CoreFoundation`CFRunLoopRunSpecific + 436
    frame #47: 0x00000001fb7f079c GraphicsServices`GSEventRunModal + 104
    frame #48: 0x0000000225e50c38 UIKitCore`UIApplicationMain + 212
    frame #49: 0x00000001043dcf98 ALS.dylib`___lldb_unnamed_symbol4$$ALS.dylib + 400
    frame #50: 0x0000000100ad1d44 g37`___lldb_unnamed_symbol22358$$g37 + 92
    frame #51: 0x0000000100677fd8 g37`___lldb_unnamed_symbol151$$g37 + 376
    frame #52: 0x00000001f90b28e0 libdyld.dylib`start + 4

这次可以看到,由于没找到selector导致异常。
一般的,selector找不到的错误,可以在系统日志查到,但是有些机器上不显示,只能这么手动找了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249