应用程序可以通过多种方式捕获崩溃。在大多数类型中,IDE 提供的信息已经足够了。 (Xcode & iOS/OS X 开发) 但是有一些崩溃报告为我们提供了崩溃的线程及其堆栈跟踪(像往常一样),但其中没有一帧指向来 self 们应用程序的任何调用!那里涉及本地库。
谁能分享他/她自己修复此类错误的经验以及现有的崩溃报告?
非常感谢!
更新:
我熟悉以下文档:Crash Report (TN2123) , 翻看了 function calling conventions ,开始Mac OS X Debugging Magic (TN2124) 。
但还没有成功。
UPD2,堆栈跟踪:
Process: My Application [5708]
Path: /Applications/My Application.app/Contents/MacOS/My Application
Identifier: com.MyApplication
Version: 1.0 (0)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: My Application [5708]
User ID: 10001
Date/Time: 2015-05-05 18:30:02.782 +0300
OS Version: Mac OS X 10.10.1 (14B25)
Report Version: 11
Anonymous UUID: FE6D3DC3-9F32-246F-B1FD-5884D8CABA62
Sleep/Wake UUID: 7B4B18F9-E17D-48CA-AB36-0C75F236A14F
Time Awake Since Boot: 9000 seconds
Time Since Wake: 5700 seconds
Crashed Thread: 3 Dispatch queue: com.apple.videotoolbox.preparationQueue
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000011ccce000
VM Regions Near 0x11ccce000:
IOKit 000000011cc5a000-000000011ccce000 [ 464K] rw-/rw- SM=SHM
-->
IOKit 000000011d04f000-000000011d0fd000 [ 696K] rw-/rw- SM=SHM
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8a1bfb14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8a1befdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8a1be838 CFRunLoopRunSpecific + 296
5 com.apple.HIToolbox 0x00007fff8c28a43f RunCurrentEventLoopInMode + 235
6 com.apple.HIToolbox 0x00007fff8c28a1ba ReceiveNextEventCommon + 431
7 com.apple.HIToolbox 0x00007fff8c289ffb _BlockUntilNextEventMatchingListInModeWithFilter + 71
8 com.apple.AppKit 0x00007fff84b0a6d1 _DPSNextEvent + 964
9 com.apple.AppKit 0x00007fff84b09e80 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
10 com.apple.AppKit 0x00007fff84afde23 -[NSApplication run] + 594
11 com.apple.AppKit 0x00007fff84ae92d4 NSApplicationMain + 1832
12 com.MyApplication 0x0000000104eac864 start + 52
Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff87e6722e kevent64 + 10
1 libdispatch.dylib 0x00007fff92e85a6a _dispatch_mgr_thread + 52
Thread 2:
0 libsystem_kernel.dylib 0x00007fff87e66946 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8cbca4a1 start_wqthread + 13
Thread 3 Crashed:: Dispatch queue: com.apple.videotoolbox.preparationQueue
0 com.apple.VideoToolbox 0x00007fff92ee10e5 0x7fff92eac000 + 217317
1 com.apple.VideoToolbox 0x00007fff92ec324b VTPixelTransferSessionTransferImage + 13362
2 com.apple.VideoToolbox 0x00007fff92eb40e7 0x7fff92eac000 + 32999
3 libdispatch.dylib 0x00007fff92e82c13 _dispatch_client_callout + 8
4 libdispatch.dylib 0x00007fff92e86365 _dispatch_queue_drain + 1100
5 libdispatch.dylib 0x00007fff92e87ecc _dispatch_queue_invoke + 202
6 libdispatch.dylib 0x00007fff92e856b7 _dispatch_root_queue_drain + 463
7 libdispatch.dylib 0x00007fff92e93fe4 _dispatch_worker_thread3 + 91
8 libsystem_pthread.dylib 0x00007fff8cbcc6cb _pthread_wqthread + 729
9 libsystem_pthread.dylib 0x00007fff8cbca4a1 start_wqthread + 13
Thread 4:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8a1bfb14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8a1befdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8a1be838 CFRunLoopRunSpecific + 296
5 com.apple.AppKit 0x00007fff84c6d7a7 _NSEventThread + 137
6 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
7 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
8 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 5:
0 libsystem_kernel.dylib 0x00007fff87e66946 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8cbca4a1 start_wqthread + 13
Thread 6:: com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8a1bfb14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8a1befdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8a1be838 CFRunLoopRunSpecific + 296
5 com.apple.CFNetwork 0x00007fff8465bd20 +[NSURLConnection(Loader) _resourceLoadLoop:] + 434
6 com.apple.Foundation 0x00007fff842ecb7a __NSThread__main__ + 1345
7 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
8 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
9 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 7:: com.apple.CFSocket.private
0 libsystem_kernel.dylib 0x00007fff87e663f6 __select + 10
1 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
2 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
3 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 8:: CVDisplayLink
0 libsystem_kernel.dylib 0x00007fff87e66132 __psynch_cvwait + 10
1 com.apple.CoreVideo 0x00007fff8d424ff8 CVDisplayLink::waitUntil(unsigned long long) + 240
2 com.apple.CoreVideo 0x00007fff8d4244b3 CVDisplayLink::runIOThread() + 511
3 com.apple.CoreVideo 0x00007fff8d42429b startIOThread(void*) + 147
4 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
5 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
6 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 9:
0 libsystem_kernel.dylib 0x00007fff87e66946 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8cbca4a1 start_wqthread + 13
Thread 10:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8a1bfb14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8a1befdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8a1be838 CFRunLoopRunSpecific + 296
5 com.apple.CoreFoundation 0x00007fff8a274ed1 CFRunLoopRun + 97
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d39b82e DeckLinkDeviceNotificationControlMac::MessageLoop() + 176
7 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d39b3ad DeviceNotificationController::MessageLoopFunc(void*) + 15
8 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
9 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
10 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 11:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.framework.IOKit 0x00007fff8fb4b23a io_connect_method + 381
3 com.apple.framework.IOKit 0x00007fff8faef532 IOConnectCallScalarMethod + 111
4 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3f469f Nativeproxy::writeScalarReadScalar(int, unsigned long long const*, unsigned int, unsigned long long*, unsigned int) + 39
5 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3edc53 WaitForNotificationEvents + 94
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d368db8 CDeckLinkNotification::run() + 102
7 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d368e7a thread_entry(void*) + 9
8 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
9 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
10 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 12:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8a1bfb14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8a1befdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8a1be838 CFRunLoopRunSpecific + 296
5 com.apple.CoreFoundation 0x00007fff8a274ed1 CFRunLoopRun + 97
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d39b82e DeckLinkDeviceNotificationControlMac::MessageLoop() + 176
7 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d39b3ad DeviceNotificationController::MessageLoopFunc(void*) + 15
8 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
9 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
10 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 13:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.framework.IOKit 0x00007fff8fb4b23a io_connect_method + 381
3 com.apple.framework.IOKit 0x00007fff8faef532 IOConnectCallScalarMethod + 111
4 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3f469f Nativeproxy::writeScalarReadScalar(int, unsigned long long const*, unsigned int, unsigned long long*, unsigned int) + 39
5 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3edc53 WaitForNotificationEvents + 94
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d368db8 CDeckLinkNotification::run() + 102
7 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d368e7a thread_entry(void*) + 9
8 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
9 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
10 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 14:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.framework.IOKit 0x00007fff8fb4b23a io_connect_method + 381
3 com.apple.framework.IOKit 0x00007fff8faef532 IOConnectCallScalarMethod + 111
4 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3f469f Nativeproxy::writeScalarReadScalar(int, unsigned long long const*, unsigned int, unsigned long long*, unsigned int) + 39
5 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3edc53 WaitForNotificationEvents + 94
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d38ab81 CDeckLinkOutput::DriverNotificationThread() + 119
7 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3879bd CDeckLinkOutput::DriverNotificationThreadFunction(void*) + 9
8 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
9 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
10 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 15:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.framework.IOKit 0x00007fff8fb4b23a io_connect_method + 381
3 com.apple.framework.IOKit 0x00007fff8faef532 IOConnectCallScalarMethod + 111
4 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3ee507 WaitForVideoOutputPreviewEvent + 51
5 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d38a427 CDeckLinkOutput::VideoPreviewThread(PreviewThreadArgs*) + 103
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d3882e0 CDeckLinkOutput::VideoPreviewThreadFunction(void*) + 18
7 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
8 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
9 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 16:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8a1bfb14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8a1befdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8a1be838 CFRunLoopRunSpecific + 296
5 com.apple.CoreFoundation 0x00007fff8a274ed1 CFRunLoopRun + 97
6 com.blackmagic-design.desktopvideo.DeckLinkAPI 0x000000010d37263f CDeckLink::DriverNotificationThreadFunction(void*) + 89
7 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
8 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
9 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 17:: com.apple.coremedia.mediaprocessor.videocompression
0 libsystem_kernel.dylib 0x00007fff87e66162 __psynch_mutexwait + 10
1 com.apple.VideoToolbox 0x00007fff92eb087b VTCompressionSessionEncodeFrame + 378
2 com.apple.MediaToolbox 0x00007fff8bc4f12e 0x7fff8ba3f000 + 2162990
3 com.apple.MediaToolbox 0x00007fff8bc26cd9 0x7fff8ba3f000 + 1998041
4 com.apple.MediaToolbox 0x00007fff8bc2693f 0x7fff8ba3f000 + 1997119
5 com.apple.MediaToolbox 0x00007fff8bc1b367 0x7fff8ba3f000 + 1950567
6 com.apple.CoreMedia 0x00007fff90a217b5 figThreadMain + 417
7 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
8 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
9 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 18:: com.apple.coremedia.mediaprocessor.audiocompression
0 libsystem_kernel.dylib 0x00007fff87e66132 __psynch_cvwait + 10
1 com.apple.CoreMedia 0x00007fff90a20d31 WaitOnCondition + 11
2 com.apple.CoreMedia 0x00007fff90a20b3e FigSemaphoreWaitRelative + 156
3 com.apple.MediaToolbox 0x00007fff8bc1b343 0x7fff8ba3f000 + 1950531
4 com.apple.CoreMedia 0x00007fff90a217b5 figThreadMain + 417
5 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
6 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
7 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 19:
0 libsystem_kernel.dylib 0x00007fff87e6152e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87e6069f mach_msg + 55
2 com.apple.framework.IOKit 0x00007fff8fb4b23a io_connect_method + 381
3 com.apple.framework.IOKit 0x00007fff8faef532 IOConnectCallScalarMethod + 111
4 com.apple.IOAccelerator 0x00007fff8ca1d449 IOAccelContextFinishFenceEvent + 42
5 com.apple.AppleIntelHD4000GraphicsVADriver 0x000000010ecc2732 0x10ecb0000 + 75570
6 com.apple.AppleIntelHD4000GraphicsVADriver 0x000000010ecdd6ca 0x10ecb0000 + 186058
7 com.apple.AppleGVAFramework 0x000000010e8ba4ab 0x10e81d000 + 644267
8 com.apple.AppleGVAFramework 0x000000010e8ba150 0x10e81d000 + 643408
9 com.apple.AppleGVAFramework 0x000000010e8baf74 0x10e81d000 + 647028
10 com.apple.AppleGVAFramework 0x000000010e8bbe2b 0x10e81d000 + 650795
11 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
12 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
13 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 20:: com.apple.coremedia.formatwriter.qtmovie
0 libsystem_kernel.dylib 0x00007fff87e67636 pwrite + 10
1 com.apple.CoreMedia 0x00007fff90a12363 FigFileByteStreamWrite + 60
2 com.apple.CoreMedia 0x00007fff90a11265 CMByteStreamWriteBlockBuffer + 320
3 com.apple.MediaToolbox 0x00007fff8bbea72c 0x7fff8ba3f000 + 1750828
4 com.apple.MediaToolbox 0x00007fff8bbe5e6c 0x7fff8ba3f000 + 1732204
5 com.apple.MediaToolbox 0x00007fff8bbe3726 0x7fff8ba3f000 + 1722150
6 com.apple.CoreMedia 0x00007fff90a217b5 figThreadMain + 417
7 libsystem_pthread.dylib 0x00007fff8cbcc2fc _pthread_body + 131
8 libsystem_pthread.dylib 0x00007fff8cbcc279 _pthread_start + 176
9 libsystem_pthread.dylib 0x00007fff8cbca4b1 thread_start + 13
Thread 21:
0 libsystem_kernel.dylib 0x00007fff87e66946 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8cbca4a1 start_wqthread + 13
Thread 22:
0 libsystem_kernel.dylib 0x00007fff87e66946 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8cbca4a1 start_wqthread + 13
Thread 23:
Thread 3 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000010 rbx: 0x00000000000003c0 rcx: 0x000000011c6afa80 rdx: 0x000000011c99dc00
rdi: 0x00000000000002c0 rsi: 0x000000000000007b rbp: 0x00000001051f3a60 rsp: 0x00000001051f3940
r8: 0x0000000000000438 r9: 0x000000011c88fc00 r10: 0x0000000000000f00 r11: 0x0000000000000780
r12: 0x000000011c676000 r13: 0x000000011cccd500 r14: 0x000000011c871000 r15: 0x000000011c97f000
rip: 0x00007fff92ee10e5 rfl: 0x0000000000010202 cr2: 0x000000011ccce000
Logical CPU: 0
Error Code: 0x00000004
Trap Number: 14
Binary Images:...
我注意到异常代码
中的地址等于cr2
寄存器中的地址,但与技术说明中所写的rip
中的地址不同。
最佳答案
您可以使用 lldb
或 gdb
从 Xcode 的
调试控制台调试代码。在崩溃时,这些命令可能有助于在运行时获取有关对象状态的信息,以继续解决问题的根本原因。有关您可以使用的命令列表,请参阅 http://lldb.llvm.org/lldb-gdb.html
或
http://www.informit.com/articles/article.aspx?p=1829415&seqNum=6
您还可以启用Zombie
以获取与崩溃相关的更多信息
NSZombie
是一个 Cocoa
技巧,可以将任何要被释放
的对象变成一个 NSZombie
实例。无论如何你都会崩溃,但是不是 Xcode
只是提示你试图访问错误的内存地址,你会得到一些更好的东西,像这样:
2011-02-25 01:27:57.063 WordPress[10496:207] *** -[CFString isEqualToString:]: message sent to deallocated instance 0xcf1b0c0
不多,但至少你知道有罪的对象是一个字符串。
有关Zombie
的更多信息,请参阅 https://cocoaforbreakfast.wordpress.com/2011/02/25/exc_bad_access-a-zombie-nightmare/
关于ios - Objective C,在堆栈跟踪中不涉及我的应用程序时处理崩溃报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30593927/