在Mavericks GM上构建时,C ++中的运行时崩溃

时间:2013-10-08 20:49:22

标签: c++ xcode osx-mavericks

我正在使用Xcode 5.0.1 GM在Mavericks GM上运行。用于编译的OS X SDK似乎并不重要。我尝试用10.8和10.9 SDK重新编译我公司的软件。我得到了与Debug和Release相同的结果编译。奇怪的是,如果我在10.7或10.8上编译并将二进制文件转移到10.9机器上,一切正常。

我使用的软件是用C ++编写的,运行大约600K行代码。我们的代码库中没有任何内容直接使用lbxpc。使用了一些最大的外部库:

  • Qt 4.8.5
  • Boost 1.49.0
  • OpenCL(在运行时动态加载)
  • 的OpenEXR
  • Growl 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中双击它,则不会发生此问题。

0 个答案:

没有答案