Objective c “什么是”呢;特定于应用程序的回溯”;在事故日志中?
我注意到,在我的应用程序在OS X上的崩溃日志中,第一部分是“特定于应用程序的回溯”。它显示了如下内容:Objective c “什么是”呢;特定于应用程序的回溯”;在事故日志中?,objective-c,macos,debugging,Objective C,Macos,Debugging,我注意到,在我的应用程序在OS X上的崩溃日志中,第一部分是“特定于应用程序的回溯”。它显示了如下内容: Application Specific Backtrace 1: 0 CoreFoundation 0x00007fff8acef716 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff8d723470 objc_exception_th
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff8acef716 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8d723470 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8ad7df07 -[__NSDictionaryM setObject:forKey:] + 135
3 My App 0x00000001030c6f72 My App + 81778
4 My App 0x00000001030c7969 My App + 84329
5 AppKit 0x00007fff8c3d5afa -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1012
6 AppKit 0x00007fff8c5ec1d6 -[NSNib _instantiateNibWithExternalNameTable:] + 610
7 AppKit 0x00007fff8c5ebf43 -[NSNib instantiateNibWithOwner:topLevelObjects:] + 254
8 AppKit 0x00007fff8c5eb4f7 -[NSViewController loadView] + 184
9 AppKit 0x00007fff8c593349 -[NSViewController view] + 41
10 My App 0x00000001030cae69 My App + 97897
11 My App 0x00000001030cbb3a My App + 101178
12 AppKit 0x00007fff8c590322 -[NSTableView _sendDelegateHeightOfRow:] + 130
13 AppKit 0x00007fff8c5900db -[NSTableView _uncachedRectHeightOfRow:] + 197
14 AppKit 0x00007fff8c58ff2c -[_NSTableRowHeightStorage _cacheRowHeights] + 163
15 AppKit 0x00007fff8c54a6f5 -[_NSTableRowHeightStorage _ensureRowHeights] + 80
16 AppKit 0x00007fff8c5680cb -[_NSTableRowHeightStorage computeRowAtPoint:] + 38
17 AppKit 0x00007fff8c567fd9 -[NSTableView rowAtPoint:] + 306
18 AppKit 0x00007fff8c566af7 -[NSTableView rowsInRect:] + 375
19 AppKit 0x00007fff8c597ca4 _NSTVVisibleRowsForUpdate + 673
20 AppKit 0x00007fff8c5971e5 -[NSTableRowData _unsafeUpdateVisibleRowEntries] + 96
21 AppKit 0x00007fff8c597001 -[NSTableRowData updateVisibleRowViews] + 119
22 AppKit 0x00007fff8c56f0fb -[NSTableView viewWillDraw] + 165
23 AppKit 0x00007fff8c44cbed __22-[NSView viewWillDraw]_block_invoke_0 + 307
24 CoreFoundation 0x00007fff8ace80b6 __NSArrayEnumerate + 582
25 AppKit 0x00007fff8c44c92d -[NSView viewWillDraw] + 244
26 AppKit 0x00007fff8c44bf84 -[NSView _sendViewWillDrawInRect:clipRootView:] + 1525
27 AppKit 0x00007fff8c4183f1 -[NSView displayIfNeeded] + 1044
28 AppKit 0x00007fff8c4c429e -[NSClipView _immediateScrollToPoint:] + 7852
29 AppKit 0x00007fff8c4c2342 -[NSClipView scrollToPoint:] + 268
30 AppKit 0x00007fff8c58acdd -[NSScrollView scrollClipView:toPoint:] + 426
31 AppKit 0x00007fff8c4c20cc -[NSClipView _scrollTo:animateScroll:flashScrollerKnobs:] + 1626
32 AppKit 0x00007fff8c39d579 -[NSClipView _scrollTo:animate:] + 28
33 AppKit 0x00007fff8caab2a1 __31-[NSScrollView _snapRubberBand]_block_invoke_0610 + 1989
34 AppKit 0x00007fff8ca2412a ____NSPeriodicInvokerScheduled_block_invoke_0 + 57
35 libdispatch.dylib 0x00007fff8a013f3d _dispatch_call_block_and_release + 15
36 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
37 libdispatch.dylib 0x00007fff8a0149ab _dispatch_after_timer_callback + 22
38 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
39 libdispatch.dylib 0x00007fff8a0122d7 _dispatch_source_invoke + 691
40 libdispatch.dylib 0x00007fff8a011349 _dispatch_queue_invoke + 72
41 libdispatch.dylib 0x00007fff8a0150cd _dispatch_main_queue_callback_4CF + 220
42 CoreFoundation 0x00007fff8ac9181e __CFRunLoopRun + 1614
43 CoreFoundation 0x00007fff8ac90dd2 CFRunLoopRunSpecific + 290
44 HIToolbox 0x00007fff85323774 RunCurrentEventLoopInMode + 209
45 HIToolbox 0x00007fff85323512 ReceiveNextEventCommon + 356
46 HIToolbox 0x00007fff853233a3 BlockUntilNextEventMatchingListInMode + 62
47 AppKit 0x00007fff8c414fa3 _DPSNextEvent + 685
48 AppKit 0x00007fff8c414862 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
49 AppKit 0x00007fff8c40bc03 -[NSApplication run] + 517
50 AppKit 0x00007fff8c3b0656 NSApplicationMain + 869
51 My App 0x00000001030b4554 My App + 5460
52 ??? 0x0000000000000002 0x0 + 2
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff8588d212 __pthread_kill + 10
1 libsystem_c.dylib 0x00007fff8e1fab34 pthread_kill + 90
2 libsystem_c.dylib 0x00007fff8e23edfa abort + 143
3 libc++abi.dylib 0x00007fff888abf87 abort_message + 257
4 libc++abi.dylib 0x00007fff888a9936 default_terminate() + 28
5 libobjc.A.dylib 0x00007fff8d7238f3 _objc_terminate() + 91
6 libc++.1.dylib 0x00007fff8694c8fe std::terminate() + 20
7 libobjc.A.dylib 0x00007fff8d72365e objc_terminate + 9
8 libdispatch.dylib 0x00007fff8a01010e _dispatch_client_callout + 28
9 libdispatch.dylib 0x00007fff8a0149ab _dispatch_after_timer_callback + 22
10 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff8a0122d7 _dispatch_source_invoke + 691
12 libdispatch.dylib 0x00007fff8a011349 _dispatch_queue_invoke + 72
13 libdispatch.dylib 0x00007fff8a0150cd _dispatch_main_queue_callback_4CF + 220
14 com.apple.CoreFoundation 0x00007fff8ac9181e __CFRunLoopRun + 1614
15 com.apple.CoreFoundation 0x00007fff8ac90dd2 CFRunLoopRunSpecific + 290
16 com.apple.HIToolbox 0x00007fff85323774 RunCurrentEventLoopInMode + 209
17 com.apple.HIToolbox 0x00007fff85323512 ReceiveNextEventCommon + 356
18 com.apple.HIToolbox 0x00007fff853233a3 BlockUntilNextEventMatchingListInMode + 62
19 com.apple.AppKit 0x00007fff8c414fa3 _DPSNextEvent + 685
20 com.apple.AppKit 0x00007fff8c414862 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
21 com.apple.AppKit 0x00007fff8c40bc03 -[NSApplication run] + 517
22 com.apple.AppKit 0x00007fff8c3b0656 NSApplicationMain + 869
23 com.mycompany.myapp 0x00000001030b4554 0x1030b3000 + 5460
我知道这是在主线程上运行的代码,但它在该部分中显示,而不是在线程0回溯中显示,如下所示:
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff8acef716 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8d723470 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8ad7df07 -[__NSDictionaryM setObject:forKey:] + 135
3 My App 0x00000001030c6f72 My App + 81778
4 My App 0x00000001030c7969 My App + 84329
5 AppKit 0x00007fff8c3d5afa -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1012
6 AppKit 0x00007fff8c5ec1d6 -[NSNib _instantiateNibWithExternalNameTable:] + 610
7 AppKit 0x00007fff8c5ebf43 -[NSNib instantiateNibWithOwner:topLevelObjects:] + 254
8 AppKit 0x00007fff8c5eb4f7 -[NSViewController loadView] + 184
9 AppKit 0x00007fff8c593349 -[NSViewController view] + 41
10 My App 0x00000001030cae69 My App + 97897
11 My App 0x00000001030cbb3a My App + 101178
12 AppKit 0x00007fff8c590322 -[NSTableView _sendDelegateHeightOfRow:] + 130
13 AppKit 0x00007fff8c5900db -[NSTableView _uncachedRectHeightOfRow:] + 197
14 AppKit 0x00007fff8c58ff2c -[_NSTableRowHeightStorage _cacheRowHeights] + 163
15 AppKit 0x00007fff8c54a6f5 -[_NSTableRowHeightStorage _ensureRowHeights] + 80
16 AppKit 0x00007fff8c5680cb -[_NSTableRowHeightStorage computeRowAtPoint:] + 38
17 AppKit 0x00007fff8c567fd9 -[NSTableView rowAtPoint:] + 306
18 AppKit 0x00007fff8c566af7 -[NSTableView rowsInRect:] + 375
19 AppKit 0x00007fff8c597ca4 _NSTVVisibleRowsForUpdate + 673
20 AppKit 0x00007fff8c5971e5 -[NSTableRowData _unsafeUpdateVisibleRowEntries] + 96
21 AppKit 0x00007fff8c597001 -[NSTableRowData updateVisibleRowViews] + 119
22 AppKit 0x00007fff8c56f0fb -[NSTableView viewWillDraw] + 165
23 AppKit 0x00007fff8c44cbed __22-[NSView viewWillDraw]_block_invoke_0 + 307
24 CoreFoundation 0x00007fff8ace80b6 __NSArrayEnumerate + 582
25 AppKit 0x00007fff8c44c92d -[NSView viewWillDraw] + 244
26 AppKit 0x00007fff8c44bf84 -[NSView _sendViewWillDrawInRect:clipRootView:] + 1525
27 AppKit 0x00007fff8c4183f1 -[NSView displayIfNeeded] + 1044
28 AppKit 0x00007fff8c4c429e -[NSClipView _immediateScrollToPoint:] + 7852
29 AppKit 0x00007fff8c4c2342 -[NSClipView scrollToPoint:] + 268
30 AppKit 0x00007fff8c58acdd -[NSScrollView scrollClipView:toPoint:] + 426
31 AppKit 0x00007fff8c4c20cc -[NSClipView _scrollTo:animateScroll:flashScrollerKnobs:] + 1626
32 AppKit 0x00007fff8c39d579 -[NSClipView _scrollTo:animate:] + 28
33 AppKit 0x00007fff8caab2a1 __31-[NSScrollView _snapRubberBand]_block_invoke_0610 + 1989
34 AppKit 0x00007fff8ca2412a ____NSPeriodicInvokerScheduled_block_invoke_0 + 57
35 libdispatch.dylib 0x00007fff8a013f3d _dispatch_call_block_and_release + 15
36 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
37 libdispatch.dylib 0x00007fff8a0149ab _dispatch_after_timer_callback + 22
38 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
39 libdispatch.dylib 0x00007fff8a0122d7 _dispatch_source_invoke + 691
40 libdispatch.dylib 0x00007fff8a011349 _dispatch_queue_invoke + 72
41 libdispatch.dylib 0x00007fff8a0150cd _dispatch_main_queue_callback_4CF + 220
42 CoreFoundation 0x00007fff8ac9181e __CFRunLoopRun + 1614
43 CoreFoundation 0x00007fff8ac90dd2 CFRunLoopRunSpecific + 290
44 HIToolbox 0x00007fff85323774 RunCurrentEventLoopInMode + 209
45 HIToolbox 0x00007fff85323512 ReceiveNextEventCommon + 356
46 HIToolbox 0x00007fff853233a3 BlockUntilNextEventMatchingListInMode + 62
47 AppKit 0x00007fff8c414fa3 _DPSNextEvent + 685
48 AppKit 0x00007fff8c414862 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
49 AppKit 0x00007fff8c40bc03 -[NSApplication run] + 517
50 AppKit 0x00007fff8c3b0656 NSApplicationMain + 869
51 My App 0x00000001030b4554 My App + 5460
52 ??? 0x0000000000000002 0x0 + 2
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff8588d212 __pthread_kill + 10
1 libsystem_c.dylib 0x00007fff8e1fab34 pthread_kill + 90
2 libsystem_c.dylib 0x00007fff8e23edfa abort + 143
3 libc++abi.dylib 0x00007fff888abf87 abort_message + 257
4 libc++abi.dylib 0x00007fff888a9936 default_terminate() + 28
5 libobjc.A.dylib 0x00007fff8d7238f3 _objc_terminate() + 91
6 libc++.1.dylib 0x00007fff8694c8fe std::terminate() + 20
7 libobjc.A.dylib 0x00007fff8d72365e objc_terminate + 9
8 libdispatch.dylib 0x00007fff8a01010e _dispatch_client_callout + 28
9 libdispatch.dylib 0x00007fff8a0149ab _dispatch_after_timer_callback + 22
10 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff8a0122d7 _dispatch_source_invoke + 691
12 libdispatch.dylib 0x00007fff8a011349 _dispatch_queue_invoke + 72
13 libdispatch.dylib 0x00007fff8a0150cd _dispatch_main_queue_callback_4CF + 220
14 com.apple.CoreFoundation 0x00007fff8ac9181e __CFRunLoopRun + 1614
15 com.apple.CoreFoundation 0x00007fff8ac90dd2 CFRunLoopRunSpecific + 290
16 com.apple.HIToolbox 0x00007fff85323774 RunCurrentEventLoopInMode + 209
17 com.apple.HIToolbox 0x00007fff85323512 ReceiveNextEventCommon + 356
18 com.apple.HIToolbox 0x00007fff853233a3 BlockUntilNextEventMatchingListInMode + 62
19 com.apple.AppKit 0x00007fff8c414fa3 _DPSNextEvent + 685
20 com.apple.AppKit 0x00007fff8c414862 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
21 com.apple.AppKit 0x00007fff8c40bc03 -[NSApplication run] + 517
22 com.apple.AppKit 0x00007fff8c3b0656 NSApplicationMain + 869
23 com.mycompany.myapp 0x00000001030b4554 0x1030b3000 + 5460
“特定于应用程序的回溯”的意义是什么?为什么主线程回溯中不包含这些代码
(要清楚,我不是问如何调试这段代码,我只是想了解崩溃日志本身的结构和意义。谢谢!)这就是异常处理的工作原理。主线程上有一个异常,其中创建了NSException(它保存有关异常的所有信息,包括当前堆栈跟踪)。抛出异常后,将异常对象控件传递给调用堆栈中最近的处理程序,在抛出点和捕获点之间展开堆栈。如果未捕获异常,则会被称为未捕获异常处理程序的函数拦截。未捕获异常处理程序总是导致程序退出,但在此之前可能会执行某些任务。 默认的未捕获异常处理程序在退出程序之前将消息记录到控制台 因此,在您的情况下,特定于应用程序的回溯是引发异常时的堆栈跟踪,线程0崩溃::调度队列:com.apple。主线程是应用程序被终止时的堆栈跟踪 请注意,到目前为止,堆栈跟踪是相同的:
10 libdispatch.dylib 0x00007fff8a0100fa _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff8a0122d7 _dispatch_source_invoke + 691
12 libdispatch.dylib 0x00007fff8a011349 _dispatch_queue_invoke + 72
13 libdispatch.dylib 0x00007fff8a0150cd _dispatch_main_queue_callback_4CF + 220
14 com.apple.CoreFoundation 0x00007fff8ac9181e __CFRunLoopRun + 1614
15 com.apple.CoreFoundation 0x00007fff8ac90dd2 CFRunLoopRunSpecific + 290
16 com.apple.HIToolbox 0x00007fff85323774 RunCurrentEventLoopInMode + 209
17 com.apple.HIToolbox 0x00007fff85323512 ReceiveNextEventCommon + 356
18 com.apple.HIToolbox 0x00007fff853233a3 BlockUntilNextEventMatchingListInMode + 62
19 com.apple.AppKit 0x00007fff8c414fa3 _DPSNextEvent + 685
20 com.apple.AppKit 0x00007fff8c414862 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
21 com.apple.AppKit 0x00007fff8c40bc03 -[NSApplication run] + 517
22 com.apple.AppKit 0x00007fff8c3b0656 NSApplicationMain + 869
+这真奇怪。我以前也遇到过这种情况,但从未注意过“特定于应用程序的回溯”的实际含义。环顾四周(这里没有太多内容),我唯一能猜到的是线程0被留给了低级进程,其中运行的UIKit是线程1。因此ASB 0中的错误可能是库、框架等的问题,而ASB 1中的错误可能是UIKit问题。在本例中,您的setObject:forKey:。在这个问题上,我可能会进入左外野,但这是我唯一能想到的。希望这有帮助!回答得很好,完全有道理。非常感谢。