이 충돌 보고서를 사용자가 읽을 수 있도록 도와 줄 수 있습니까?


19

발생한 상황에 대한 아이디어를 얻기 위해 충돌 보고서를 어떻게 읽을 수 있습니까?

살균 된 충돌 보고서 샘플 :

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

답변:


21

충돌 보고서는 프로그램에서 발생한 일을 확인하고 문제를 해결할 수있는 상황에 따라 다릅니다 (예 : Final Cut 충돌이 2.5GB 이상의 메모리를 사용하려고하면 일부 프로젝트를 닫습니다). 그것들은 개발자에게 가장 중요하므로 문제가 버그 인 것처럼 전달해야합니다. 커널 패닉을 다루는 수퍼 유저 에 관한 관련 질문도 사용될 수 있습니다.

Apple Tech에 링크 된 StackOverflow 에 대한이 주제에 대한 또 다른 좋은 설명입니다 . 노트

샘플 충돌 보고서를 분석하겠습니다.

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

여기의 마지막 세부 사항은 일반적으로 사용자에게는 그리 중요하지 않습니다. 그러나 개발자에게 좋은 배경 정보를 제공합니다.


자유롭게 수정하십시오-가능하면 더 나은 답변을 원합니다.
Chealion

3

2 번 라인은 소프트웨어 업데이트가 실행 중이며로드 된 이미지 (경로)를 보여줍니다. 6 단계, 부모 프로세스는 시작 데몬에 의해 실행되었다고합니다. 즉, 사용자가 수동으로 시작한 것이 아니라 예약 된 실행입니다.

예외 유형 SIGSEGV는 세그먼트 위반입니다. 프로그램이 운영 체제에서 할당 한 것 이외의 일부 메모리에 액세스하려고했습니다. 아마도 초기화되지 않은 포인터를 사용했거나 프로그램 주소의 버퍼가 오버런되었을 때 발생할 수있는 반환 주소 또는 다른 포인터를 덮어 썼습니다.

나머지 정보는 소스 코드와 로드맵 없이는 거의 쓸모가 없습니다. 즉, 충돌이 어떻게 발생했는지 알아 내려는 프로그래머에게는 흥미가 있지만 나머지 사람들에게는 실제로는 많이 사용되지 않습니다.


1
@Chea는 일반적인 답변을 원한다고 생각하며 답변이 게시 된 샘플에만 적용되는 샘플 충돌이 있습니다.
Am1rr3zA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.