Czy ktoś może mi pomóc przeczytać ten raport o awarii jako użytkownik?

19

Jak mogę przeczytać raport o awarii, aby dowiedzieć się, co się stało?

Przykładowy raport zdezynfekowanej awarii:

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
Chealion
źródło

Odpowiedzi:

21

Raporty o awariach pomagają dowiedzieć się, co się stało z programem, i zależnie od okoliczności, które mogą je naprawić (np. Awarie Final Cut, próbujące zużyć ponad 2,5 GB pamięci - zamknąć niektóre projekty). Są najważniejsze dla dewelopera, więc przekaż je tak, jakby to był błąd. Przydaje się również pokrewne pytanie dotyczące SuperUser zajmującego się paniką jądra.

Kolejna dobra dyskusja na ten temat na StackOverflow , która również prowadzi do tego Apple Tech. Uwaga

Podzielę przykładowy raport o awarii:

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

Linie początkowe mówią tylko, co się zawiesiło, kiedy i co go uruchomiło (proces nadrzędny).

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

Informacje te nie są zbyt przydatne i można je przycinać - podają tylko liczbę awarii i czas, jaki upłynął od zapisania ostatniego raportu o awarii.

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

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

Jest to podstawowa informacja, której szukasz - typ wyjątku może powiedzieć, jaki rodzaj błędu spowodował awarię programu (który może być czymś, co można naprawić lub rzeczywisty błąd), a dokładniej, jaki wątek się zawiesił. Jeśli masz informacje specyficzne dla aplikacji, nie zaszkodzi, ponieważ może dać ci wyobrażenie o tym, co jest używane w momencie awarii.

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

Powyższe 5 wątków informacji o awarii jest całkowicie bezużyteczne jako użytkownik, ponieważ nie mają one nic wspólnego z awarią, którą można łatwo dostrzec. Deweloper może jednak potrzebować wiedzieć, co robi, jeśli ma do czynienia z problemem współbieżności (wątków).

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

To jest mięso i ziemniaki - pierwsze kilka wierszy daje przybliżone wyobrażenie o tym, co się dzieje - w tym przypadku coś poszło nie tak po zakończeniu pobierania aktualizacji.

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

Ostatnie szczegóły tutaj zwykle nie są tak ważne dla ciebie, jak dla użytkownika - dają jednak dobre informacje dla programisty.

Chealion
źródło
Nie krępuj się edytować - jeśli to możliwe, chciałbyś uzyskać lepszą odpowiedź.
Chealion
3

Wiersz 2 mówi, że aktualizacja oprogramowania była uruchomiona i pokazuje obraz (ścieżkę), z którego została załadowana. Linia 6, proces nadrzędny, mówi, że był uruchamiany przez demona uruchamiającego, tj. Zaplanowane uruchamianie, a nie uruchamiane ręcznie przez ciebie.

Typ wyjątku, SIGSEGV, stanowi naruszenie segmentu - program próbował uzyskać dostęp do pamięci innej niż przydzielona mu przez system operacyjny. Możliwe, że użył niezainicjowanego wskaźnika lub adres zwrotny lub inny wskaźnik został nadpisany, co może się zdarzyć, jeśli bufor na stosie programu zostanie przepełniony.

Reszta informacji jest prawie bezużyteczna bez kodu źródłowego i mapy obciążenia, tzn. Jest to interesujące dla programisty próbującego dowiedzieć się, jak doszło do awarii, ale tak naprawdę nie jest zbyt przydatne dla reszty z nas.

JRobert
źródło
1
Myślę, że @Chea chce ogólnej odpowiedzi, a on zawiesił próbkę. Twoja odpowiedź jest specyficzna dla wysłanej próbki.
Am1rr3zA,