题
我如何阅读崩溃报告以了解发生的事情?
样本消毒崩溃报告:
Process: SoftwareUpdateCheck [16198]
Path: /System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck
Identifier: SoftwareUpdateCheck
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: launchd [199]
Date/Time: 2010-09-01 21:23:45.353 -0600
OS Version: Mac OS X 10.6.4 (10F569)
Report Version: 6
Interval Since Last Report: 112357 sec
Crashes Since Last Report: 2
Per-App Crashes Since Last Report: 1
Anonymous UUID: 0ED5F3B8-BF2C-450D-9178-740EECC74D2E
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000
Crashed Thread: 6
Application Specific Information:
objc_msgSend() selector name: respondsToSelector:
Thread 0: Dispatch queue: com.apple.main-thread
0 com.apple.CoreFoundation 0x00007fff84457869 __CFStrConvertBytesToUnicode + 41
1 com.apple.CoreFoundation 0x00007fff8446e79d _CFPropertyListCreateFromXMLStringError + 2349
2 com.apple.CoreFoundation 0x00007fff8446d440 _CFPropertyListCreateWithData + 416
3 com.apple.CFNetwork 0x00007fff88eabe34 MemoryCookies::inflateFromData(__CFData const*) + 48
4 com.apple.CFNetwork 0x00007fff88eab920 DiskCookieStorage::syncStorageLocked(unsigned char) + 440
5 com.apple.CFNetwork 0x00007fff88ebb6b7 PrivateHTTPCookieStorage::syncStorage() + 45
6 com.apple.CFNetwork 0x00007fff88ebb616 _CFHTTPCookieStorageFlushCookieStores + 136
7 libSystem.B.dylib 0x00007fff8183c7ff __cxa_finalize + 214
8 libSystem.B.dylib 0x00007fff8183c70c exit + 18
9 SoftwareUpdateCheck 0x0000000100001767 0x100000000 + 5991
Thread 1: Dispatch queue: com.apple.libdispatch-manager
0 libSystem.B.dylib 0x00007fff8184308a kevent + 10
1 libSystem.B.dylib 0x00007fff81844f5d _dispatch_mgr_invoke + 154
2 libSystem.B.dylib 0x00007fff81844c34 _dispatch_queue_invoke + 185
3 libSystem.B.dylib 0x00007fff8184475e _dispatch_worker_thread2 + 252
4 libSystem.B.dylib 0x00007fff81844088 _pthread_wqthread + 353
5 libSystem.B.dylib 0x00007fff81843f25 start_wqthread + 13
Thread 2:
0 libSystem.B.dylib 0x00007fff81843eaa __workq_kernreturn + 10
1 libSystem.B.dylib 0x00007fff818442bc _pthread_wqthread + 917
2 libSystem.B.dylib 0x00007fff81843f25 start_wqthread + 13
Thread 3:
0 libSystem.B.dylib 0x00007fff8182a2fa mach_msg_trap + 10
1 libSystem.B.dylib 0x00007fff8182a96d mach_msg + 59
2 com.apple.CoreFoundation 0x00007fff8449b3c2 __CFRunLoopRun + 1698
3 com.apple.CoreFoundation 0x00007fff8449a84f CFRunLoopRunSpecific + 575
4 com.apple.Foundation 0x00007fff875bb4c3 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 297
5 com.apple.Foundation 0x00007fff8753be8d __NSThread__main__ + 1429
6 libSystem.B.dylib 0x00007fff81863456 _pthread_start + 331
7 libSystem.B.dylib 0x00007fff81863309 thread_start + 13
Thread 4:
0 libSystem.B.dylib 0x00007fff8186ddce select$DARWIN_EXTSN + 10
1 com.apple.CoreFoundation 0x00007fff844bce92 __CFSocketManager + 818
2 libSystem.B.dylib 0x00007fff81863456 _pthread_start + 331
3 libSystem.B.dylib 0x00007fff81863309 thread_start + 13
Thread 5:
0 libSystem.B.dylib 0x00007fff81843eaa __workq_kernreturn + 10
1 libSystem.B.dylib 0x00007fff818442bc _pthread_wqthread + 917
2 libSystem.B.dylib 0x00007fff81843f25 start_wqthread + 13
Thread 6 Crashed:
0 libobjc.A.dylib 0x00007fff80ff31d8 objc_msgSend_vtable5 + 16
1 ...le.SoftwareUpdate.framework 0x00007fff84335662 -[SUSession(CallbackDispatching) _dispatchDelegateCallbackOnMainThread:withObject:withObject:withObject:] + 80
2 ...le.SoftwareUpdate.framework 0x00007fff84335c29 -[SUSessionImpl remoteProductDownloadOperationDidEnd:] + 145
3 ...le.SoftwareUpdate.framework 0x00007fff84338aed -[SUProductDownloadOperation main] + 1547
4 ...le.SoftwareUpdate.framework 0x00007fff84336592 -[SUSessionImpl downloadAndVerifyAllProductsSync:] + 396
5 ...le.SoftwareUpdate.framework 0x00007fff8433535d -[SUSession(MainThread) _sessionMain:] + 850
6 com.apple.Foundation 0x00007fff8753be8d __NSThread__main__ + 1429
7 libSystem.B.dylib 0x00007fff81863456 _pthread_start + 331
8 libSystem.B.dylib 0x00007fff81863309 thread_start + 13
Thread 6 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000020 rbx: 0x0000000111b24cc8 rcx: 0x00000001001e4250 rdx: 0x00007fff843473cd
rdi: 0x0000000111b744f0 rsi: 0x00007fff8707ed40 rbp: 0x00000001007a67c0 rsp: 0x00000001007a6768
r8: 0x00007fff707ef8c0 r9: 0x0000000111a30940 r10: 0x00000001001c89f9 r11: 0x8600007fff70e241
r12: 0x00000001001e4250 r13: 0x0000000111a30940 r14: 0x00007fff707ef8c0 r15: 0x00000001001e4250
rip: 0x00007fff80ff31d8 rfl: 0x0000000000010206 cr2: 0x000000012b786b10
Binary Images:
0x100000000 - 0x100002fff SoftwareUpdateCheck ??? (???) <99185DEE-8BB2-9437-0C4B-27DF3EF53C94> /System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck
0x7fff5fc00000 - 0x7fff5fc3bdef dyld 132.1 (???) <B536F2F1-9DF1-3B6C-1C2C-9075EA219A06> /usr/lib/dyld
0x7fff80066000 - 0x7fff80066ff7 com.apple.vecLib 3.6 (vecLib 3.6) <96FB6BAD-5568-C4E0-6FA7-02791A58B584> /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
0x7fff80067000 - 0x7fff80085fff libPng.dylib ??? (???) <F6932C8D-E6B1-0871-B698-15180AA948F7>
.... MORE FRAMEWORKS
System Profile:
COMPUTER DETAILS HERE
解决方案
崩溃报告非常适合找出该程序发生的事情,并取决于可能修复它们的情况(例如,试图使用超过2.5GB的内存 - 最终切割崩溃 - 关闭某些项目)。它们对开发人员最重要,因此请确保将它们传递给问题,就像问题是错误一样。关于 超级用户 处理内核恐慌也可能使用。
关于这个主题的另一个很好的讨论 堆栈溢出, ,也链接到这个 苹果技术。笔记
我将分解示例崩溃报告:
Process: SoftwareUpdateCheck [16198]
Path: /System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck
Identifier: SoftwareUpdateCheck
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: launchd [199]
Date/Time: 2010-09-01 21:23:45.353 -0600
OS Version: Mac OS X 10.6.4 (10F569)
Report Version: 6
开场行只告诉您什么时候崩溃了,什么时候和什么开始(父程进程)。
Interval Since Last Report: 112357 sec
Crashes Since Last Report: 2
Per-App Crashes Since Last Report: 1
Anonymous UUID: 0ED5F3B8-BF2C-450D-9178-740EECC74D2E
此信息不是很有用,并且可以修剪 - 它只是说明自上次崩溃报告被保存了多少崩溃以及已有多长时间。
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000
Crashed Thread: 6
Application Specific Information:
objc_msgSend() selector name: respondsToSelector:
这是您要寻找的主要信息 - 异常类型可以告诉您导致程序崩溃的错误(可以是您可以修复的东西或实际错误),更具体地说是线程崩溃的。如果您有特定应用程序的信息,则不会造成伤害,因为它可能会使您了解崩溃时使用的内容。
Thread 0: Dispatch queue: com.apple.main-thread
0 com.apple.CoreFoundation 0x00007fff84457869 __CFStrConvertBytesToUnicode + 41
1 com.apple.CoreFoundation 0x00007fff8446e79d _CFPropertyListCreateFromXMLStringError + 2349
2 com.apple.CoreFoundation 0x00007fff8446d440 _CFPropertyListCreateWithData + 416
3 com.apple.CFNetwork 0x00007fff88eabe34 MemoryCookies::inflateFromData(__CFData const*) + 48
4 com.apple.CFNetwork 0x00007fff88eab920 DiskCookieStorage::syncStorageLocked(unsigned char) + 440
5 com.apple.CFNetwork 0x00007fff88ebb6b7 PrivateHTTPCookieStorage::syncStorage() + 45
6 com.apple.CFNetwork 0x00007fff88ebb616 _CFHTTPCookieStorageFlushCookieStores + 136
7 libSystem.B.dylib 0x00007fff8183c7ff __cxa_finalize + 214
8 libSystem.B.dylib 0x00007fff8183c70c exit + 18
9 SoftwareUpdateCheck 0x0000000100001767 0x100000000 + 5991
[pruned threads]
Thread 5:
0 libSystem.B.dylib 0x00007fff81843eaa __workq_kernreturn + 10
1 libSystem.B.dylib 0x00007fff818442bc _pthread_wqthread + 917
2 libSystem.B.dylib 0x00007fff81843f25 start_wqthread + 13
以上5个崩溃信息对您来说是完全没有用的,因为它们与易于辨别的崩溃无关。但是,如果处理并发问题(线程)问题,开发人员可能需要知道它在做什么。
Thread 6 Crashed:
0 libobjc.A.dylib 0x00007fff80ff31d8 objc_msgSend_vtable5 + 16
1 ...le.SoftwareUpdate.framework 0x00007fff84335662 -[SUSession(CallbackDispatching) _dispatchDelegateCallbackOnMainThread:withObject:withObject:withObject:] + 80
2 ...le.SoftwareUpdate.framework 0x00007fff84335c29 -[SUSessionImpl remoteProductDownloadOperationDidEnd:] + 145
3 ...le.SoftwareUpdate.framework 0x00007fff84338aed -[SUProductDownloadOperation main] + 1547
4 ...le.SoftwareUpdate.framework 0x00007fff84336592 -[SUSessionImpl downloadAndVerifyAllProductsSync:] + 396
5 ...le.SoftwareUpdate.framework 0x00007fff8433535d -[SUSession(MainThread) _sessionMain:] + 850
6 com.apple.Foundation 0x00007fff8753be8d __NSThread__main__ + 1429
7 libSystem.B.dylib 0x00007fff81863456 _pthread_start + 331
8 libSystem.B.dylib 0x00007fff81863309 thread_start + 13
这是肉和土豆 - 前几行使您对发生的事情有一个大概的想法 - 在这种情况下,我更新完成下载后出现了可怕的错误。
Thread 6 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000020 rbx: 0x0000000111b24cc8 rcx: 0x00000001001e4250 rdx: 0x00007fff843473cd
rdi: 0x0000000111b744f0 rsi: 0x00007fff8707ed40 rbp: 0x00000001007a67c0 rsp: 0x00000001007a6768
r8: 0x00007fff707ef8c0 r9: 0x0000000111a30940 r10: 0x00000001001c89f9 r11: 0x8600007fff70e241
r12: 0x00000001001e4250 r13: 0x0000000111a30940 r14: 0x00007fff707ef8c0 r15: 0x00000001001e4250
rip: 0x00007fff80ff31d8 rfl: 0x0000000000010206 cr2: 0x000000012b786b10
Binary Images:
0x100000000 - 0x100002fff SoftwareUpdateCheck ??? (???) <99185DEE-8BB2-9437-0C4B-27DF3EF53C94> /System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck
0x7fff5fc00000 - 0x7fff5fc3bdef dyld 132.1 (???) <B536F2F1-9DF1-3B6C-1C2C-9075EA219A06> /usr/lib/dyld
0x7fff80066000 - 0x7fff80066ff7 com.apple.vecLib 3.6 (vecLib 3.6) <96FB6BAD-5568-C4E0-6FA7-02791A58B584> /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
0x7fff80067000 - 0x7fff80085fff libPng.dylib ??? (???) <F6932C8D-E6B1-0871-B698-15180AA948F7>
.... MORE FRAMEWORKS
System Profile:
COMPUTER DETAILS HERE
这里的最后一个详细信息通常对您而言并不那么重要 - 但是,它们为开发人员提供了一些良好的背景信息。
其他提示
第2行说,软件更新正在运行,并显示了它已加载的图像(路径)。第6行,父程流程说,它是由启动守护程序(IE)运行的,即预定的运行,没有一个人手动启动。
异常类型SigSeGV是一个违反细分市场 - 该程序试图访问操作系统分配给它的内存。可能它使用了一个非初始化的指针,或者使用返回地址或其他一些指针被过度编写,如果程序堆栈上的缓冲区过度运行,可能会发生这种情况。
没有源代码和负载图,即,试图找出崩溃是如何发生的,但对我们其余的人来说并没有太多使用,其余的信息几乎是无用的。