我正在开发这个应用程序,它在开发盒和测试盒上都很好用osx 10.8。 测试盒是显着较旧的硬件,但与开发盒相同的软件设置。
在两台机器上升级到OSX 10.9 Mavericks后,我的测试盒上出现 EXEC_BAD_INSTRUCTION(SIGILL)失败,并显示错误报告,表明10.9存在问题。
这可能是我做过的事情,还是应该让苹果公司修理他们的Os?
我已经尝试了所有 DYLD_PRINT _ * env变量来查看我是否得到了一些线索,但它失败了,没有异常或指示性消息。
关于它可能是什么或者在哪里进一步/更深入的任何想法? 您对此痕迹的解释也是受欢迎的。
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Application Specific Information:
/Volumes/juan/Library/Developer/Xcode/DerivedData/****/Contents/MacOS/../Frameworks/libprotobuf-lite.8.dylib
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libprotobuf-lite.8.dylib 0x0000000103d18bc4 _GLOBAL__I_a + 4
1 dyld 0x00007fff69423c2e ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 268
2 dyld 0x00007fff69423dba ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 40
3 dyld 0x00007fff69420a62 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 308
4 dyld 0x00007fff694209eb ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 189
5 dyld 0x00007fff694208f6 ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 54
6 dyld 0x00007fff694141da dyld::initializeMainExecutable() + 189
7 dyld 0x00007fff69417560 dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 2419
8 dyld 0x00007fff6941327b dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) + 477
9 dyld 0x00007fff6941305e _dyld_start + 54
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000001 rbx: 0x0000000103d18bc0 rcx: 0x00007fff5c425cd0 rdx: 0x00007fff5c425c78
rdi: 0x0000000000000001 rsi: 0x00007fff5c425c68 rbp: 0x00007fff5c4240c0 rsp: 0x00007fff5c4240c0
r8: 0x00007fff69446178 r9: 0x00007fff5c424000 r10: 0x00007fff9abcbc70 r11: 0x00007fff961c02aa
r12: 0x0000000000000000 r13: 0x00007fff694460b0 r14: 0x00007fff6944eb28 r15: 0x0000000103d20310
rip: 0x0000000103d18bc4 rfl: 0x0000000000010246 cr2: 0x0000000103d18bc0
Logical CPU: 1
Error Code: 0x00000000
Trap Number: 6
答案 0 :(得分:3)
所以我发现了问题。
我的图书馆是使用自制软件构建的。默认情况下,自制程序优化了本机体系结构,导致机器指令无法在旧机器上运行。
要防止brew建立processsor-specificfic优化,你必须
brew install --build-bottle protobuf (或您的特定lib)