我的应用程序对我和我的几乎所有用户都正常工作,但我的两名用户(都是El Capitan用户)报告了类似但很奇怪的崩溃。“API MISUSE:对象的复活”
是例外:
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
API MISUSE: Resurrection of an object
这些都是有各自的崩溃线程。从第一个用户:
Thread 11 Crashed:: Dispatch queue: com.apple.root.user-initiated-qos
0 libdispatch.dylib 0x00007fff93e901b3 _os_object_retain + 45
1 com.apple.audio.CoreAudio 0x00007fff8c497063 void std::__1::vector >::__push_back_slow_path(CADispatchQueue::EventSource&&) + 243
2 com.apple.audio.CoreAudio 0x00007fff8c496ed6 CADispatchQueue::InstallMachPortDeathNotification(unsigned int, void() block_pointer) + 174
3 com.apple.audio.CoreAudio 0x00007fff8c492202 HALC_ProxyObject::HALC_ProxyObject(unsigned int, unsigned int, unsigned int, unsigned int) + 154
4 com.apple.audio.CoreAudio 0x00007fff8c49e558 HALC_ProxyObjectMap::_CreateObject(unsigned int, unsigned int, unsigned int, unsigned int) + 188
5 com.apple.audio.CoreAudio 0x00007fff8c491be8 HALC_ProxyObjectMap::_CopyObjectByObjectID(unsigned int) + 248
6 com.apple.audio.CoreAudio 0x00007fff8c491a47 HALC_ProxyObjectMap::CopyObjectByObjectID(unsigned int) + 67
7 com.apple.audio.CoreAudio 0x00007fff8c4a4998 HALC_ShellDevice::RebuildControlList(bool) + 478
8 com.apple.audio.CoreAudio 0x00007fff8c4b29b9 HALC_ShellDevice::_ProxyObject_GroupPropertiesChanged(unsigned int, unsigned int, unsigned int const*, unsigned int, unsigned int const*, unsigned int, AudioObjectPropertyAddress const*) + 309
9 com.apple.audio.CoreAudio 0x00007fff8c4b287e ___ZN16HALC_ShellDevice34ProxyObject_GroupPropertiesChangedEjjPKjjS1_jPK26AudioObjectPropertyAddress_block_invoke + 60
10 com.apple.audio.CoreAudio 0x00007fff8c4a0913 HALB_CommandGate::ExecuteCommand(void() block_pointer) const + 33
11 com.apple.audio.CoreAudio 0x00007fff8c4b283c HALC_ShellDevice::ProxyObject_GroupPropertiesChanged(unsigned int, unsigned int, unsigned int const*, unsigned int, unsigned int const*, unsigned int, AudioObjectPropertyAddress const*) + 102
12 com.apple.audio.CoreAudio 0x00007fff8c4b2775 ___ZN23HALC_ProxyNotifications27_SendGroupPropertiesChangedEjjPKjjS1_jPK26AudioObjectPropertyAddressb_block_invoke + 77
13 libdispatch.dylib 0x00007fff93e9b93d _dispatch_call_block_and_release + 12
14 libdispatch.dylib 0x00007fff93e9040b _dispatch_client_callout + 8
15 libdispatch.dylib 0x00007fff93e9429b _dispatch_root_queue_drain + 1890
16 libdispatch.dylib 0x00007fff93e93b00 _dispatch_worker_thread3 + 91
17 libsystem_pthread.dylib 0x00007fff8cdc44de _pthread_wqthread + 1129
18 libsystem_pthread.dylib 0x00007fff8cdc2341 start_wqthread + 13
而且从第二用户:
Thread 14 Crashed:: Dispatch queue: com.apple.root.user-initiated-qos
0 libdispatch.dylib 0x00007fff8f9be0e7 _os_object_retain + 45
1 com.apple.audio.CoreAudio 0x00007fff90d57063 void std::__1::vector >::__push_back_slow_path(CADispatchQueue::EventSource&&) + 243
2 com.apple.audio.CoreAudio 0x00007fff90d56ed6 CADispatchQueue::InstallMachPortDeathNotification(unsigned int, void() block_pointer) + 174
3 com.apple.audio.CoreAudio 0x00007fff90d52202 HALC_ProxyObject::HALC_ProxyObject(unsigned int, unsigned int, unsigned int, unsigned int) + 154
4 com.apple.audio.CoreAudio 0x00007fff90d5e558 HALC_ProxyObjectMap::_CreateObject(unsigned int, unsigned int, unsigned int, unsigned int) + 188
5 com.apple.audio.CoreAudio 0x00007fff90d51be8 HALC_ProxyObjectMap::_CopyObjectByObjectID(unsigned int) + 248
6 com.apple.audio.CoreAudio 0x00007fff90d51a47 HALC_ProxyObjectMap::CopyObjectByObjectID(unsigned int) + 67
7 com.apple.audio.CoreAudio 0x00007fff90d64998 HALC_ShellDevice::RebuildControlList(bool) + 478
8 com.apple.audio.CoreAudio 0x00007fff90d729b9 HALC_ShellDevice::_ProxyObject_GroupPropertiesChanged(unsigned int, unsigned int, unsigned int const*, unsigned int, unsigned int const*, unsigned int, AudioObjectPropertyAddress const*) + 309
9 com.apple.audio.CoreAudio 0x00007fff90d7287e ___ZN16HALC_ShellDevice34ProxyObject_GroupPropertiesChangedEjjPKjjS1_jPK26AudioObjectPropertyAddress_block_invoke + 60
10 com.apple.audio.CoreAudio 0x00007fff90d60913 HALB_CommandGate::ExecuteCommand(void() block_pointer) const + 33
11 com.apple.audio.CoreAudio 0x00007fff90d7283c HALC_ShellDevice::ProxyObject_GroupPropertiesChanged(unsigned int, unsigned int, unsigned int const*, unsigned int, unsigned int const*, unsigned int, AudioObjectPropertyAddress const*) + 102
12 com.apple.audio.CoreAudio 0x00007fff90d72775 ___ZN23HALC_ProxyNotifications27_SendGroupPropertiesChangedEjjPKjjS1_jPK26AudioObjectPropertyAddressb_block_invoke + 77
13 libdispatch.dylib 0x00007fff8f9c9871 _dispatch_call_block_and_release + 12
14 libdispatch.dylib 0x00007fff8f9be33f _dispatch_client_callout + 8
15 libdispatch.dylib 0x00007fff8f9c21cf _dispatch_root_queue_drain + 1890
16 libdispatch.dylib 0x00007fff8f9c1a34 _dispatch_worker_thread3 + 91
17 libsystem_pthread.dylib 0x00007fff9766568f _pthread_wqthread + 1129
18 libsystem_pthread.dylib 0x00007fff97663365 start_wqthread + 13
基本上他们有同样的崩溃,以及它与CoreAudio的关系,但我甚至都不在我的应用程序中使用CoreAudio的。在我的应用程序在使用声音的唯一的地方是当我使用NSSound:
[[NSSound soundNamed:@"Pop"] play];
当我属性的声音到NSUserNotification:
notification.soundName = NSUserNotificationDefaultSoundName;
当我添加麦克风输入到屏幕记录功能(mSession是AVCaptureSession):
AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
AVCaptureDeviceInput * audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:nil];
if ([mSession canAddInput:audioInput]) [mSession addInput:audioInput];
然而,所有的这些功能似乎已呼吁在或崩溃报告中的任何其他线程。
我发现了一个非常类似的崩溃报告发生在铬: https://bugs.chromium.org/p/chromium/issues/detail?id=549667
根据最后的消息也许它涉及到音频设备被拔出应用程序运行时。有人有这个错误?我该如何解决它?提前致谢。
,我认为有些信息可能会有所帮助:
我的OS X的目标版本是10.8
它使用了10.11 SDK
它使用ARC
那么我该怎么办?添加一个try/catch到main.m以使应用程序特别忽略该异常? – vitormm