Apple - Can someone help me read this crash report as a user?

Crash Reports are good for finding out what happened to the program and depending on the circumstances possibly fixing them (eg. Final Cut crashes trying to use more than 2.5GB of memory - close some projects). They're most important to the developer so be sure to pass them on as if the issue is a bug. A related question on SuperUser dealing with kernel panics may be of use as well.

Another good discussion of this topic on StackOverflow, which also links to this Apple Tech. Note

I'll break down the sample crash report:

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

The opening lines just tell you what crashed, when and what started it (parent process).

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

This information isn't very useful and can be pruned - it is just stating how many crashes and how long it's been since the last crash report has been saved.

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000
Crashed Thread:  6

Application Specific Information:
objc_msgSend() selector name: respondsToSelector:

This is the primary information you're looking for - the exception type can tell you what kind of error caused the program to crash (which can be something you can fix or an actual bug), and more specifically what thread crashed. If you have Application Specific Information it doesn't hurt as it may give you an idea about what is being used at the time of the crash.

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

The above 5 threads of crash information are completely useless to you as a user as they have nothing to do with the crash that is easily discernible. The developer however may need to know what it's doing if dealing with a concurrency (threading) issue.

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

This is the meat and potatoes - the first couple lines give you a rough idea of what was happening - in this case something went horribly wrong after my update finished downloading.

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

The last of the details here are usually not so important for you as the user - they give some good background information for the developer however.


Line 2 says Software Update was running and shows the image (Path) it was loaded from. Line 6, Parent Process, says it was run by the launch daemon, i.e., a scheduled run, not one started manually by you.

The Exception Type, SIGSEGV, is a segment violation -- the program tried to access some memory other than what was allocated to it by the operating system. Possibly it used an uninitialized pointer, or a return-address or some other pointer got over-written which could happen if a buffer on the program stack was over-run.

The rest of the information is pretty much useless without the source code and a load-map, i.e., it's of interest to a programmer trying to find out how the crash occurred, but not really much use to the rest of us.

Tags:

Macos

Crash

Logs