Xcode 5.0.1 GM を使用して Mavericks GM を実行しています。コンパイルに使用される OS X SDK は問題ではないようです。10.8 SDK と 10.9 SDK の両方を使用して会社のソフトウェアを再コンパイルしようとしました。デバッグとリリースのコンパイルで同じ結果が得られます。奇妙なことに、10.7 または 10.8 でコンパイルし、バイナリを 10.9 マシンに持ち込むと、すべて正常に動作します。
私が取り組んでいるソフトウェアは C++ で書かれており、約 60 万行のコードを実行します。私たちのコードベースでは、lbxpc を直接使用するものはありません。使用されている最大の外部ライブラリのいくつか:
- Qt 4.8.5
- ブースト 1.49.0
- OpenCL (実行時に動的にロード)
- OpenEXR
- うなり声 1.2.1
クラッシュが発生するときはいつでも、アプリケーションのメイン スレッド内の一見ランダムな場所にあります。
他の誰かがこの問題に遭遇しましたか? もしそうなら、何が原因で、どのように修正しましたか?
クラッシュが発生した場所の分解:
0x7fff8f2e1e3b: leaq 98519(%rip), %rax ; "Bug in libxpc: Domain environment context has overflowed maximum inline message size."
0x7fff8f2e1e42: movq %rax, -389938449(%rip) ; gCRAnnotations + 8
0x7fff8f2e1e49: ud2 <-- crash
lldb からのバックトレース:
* thread #4: tid = 0x122764, 0x00007fff8f2e1e49 libxpc.dylib`_xpc_domain_serialize + 496, queue = 'com.apple.root.default-overcommit-priority, stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
frame #0: 0x00007fff8f2e1e49 libxpc.dylib`_xpc_domain_serialize + 496
frame #1: 0x00007fff8f2e18ca libxpc.dylib`_xpc_dictionary_serialize_apply + 84
frame #2: 0x00007fff8f2e1497 libxpc.dylib`_xpc_dictionary_apply_node_f + 105
frame #3: 0x00007fff8f2e16af libxpc.dylib`_xpc_dictionary_serialize + 161
frame #4: 0x00007fff8f2e1184 libxpc.dylib`_xpc_serializer_pack + 423
frame #5: 0x00007fff8f2e0f81 libxpc.dylib`_xpc_pipe_pack_message + 118
frame #6: 0x00007fff8f2e0985 libxpc.dylib`xpc_pipe_routine + 99
frame #7: 0x00007fff8f2dff2a libxpc.dylib`_xpc_runtime_init_once + 827
frame #8: 0x00007fff9076c2ad libdispatch.dylib`_dispatch_client_callout + 8
frame #9: 0x00007fff9076c21c libdispatch.dylib`dispatch_once_f + 79
frame #10: 0x00007fff8f2e4144 libxpc.dylib`_xpc_connection_init + 64
frame #11: 0x00007fff8f2e40f6 libxpc.dylib`_xpc_connection_resume_init + 14
frame #12: 0x00007fff9076c2ad libdispatch.dylib`_dispatch_client_callout + 8
frame #13: 0x00007fff9076e09e libdispatch.dylib`_dispatch_root_queue_drain + 326
frame #14: 0x00007fff9076f193 libdispatch.dylib`_dispatch_worker_thread2 + 40
frame #15: 0x00007fff922f0ef8 libsystem_pthread.dylib`_pthread_wqthread + 314
frame #16: 0x00007fff922f3fb9 libsystem_pthread.dylib`start_wqthread + 13
さらに情報を追加して更新します。
ちょっと面白いことを発見しました。この問題は、アプリケーションが Xcode によって起動された場合にのみ発生します。コマンド ラインで lldb を介して起動すると、このクラッシュは発生しません。同様に、Finder でダブルクリックしても問題は発生しません。