2016-05-16 84 views
0

我的应用程序对我和我的几乎所有用户都正常工作,但我的两名用户(都是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

回答

0

这似乎是一个操作系统的错误。 当抽出耳机,Xcode或Chrome或其他应用程序可能会崩溃到“HALC_ProxyObjectMap API MISUSE:对象的复活”

+0

那么我该怎么办?添加一个try/catch到main.m以使应用程序特别忽略该异常? – vitormm