Сборка с использованием LLVM и любая оптимизация вызывают сбой приложения при запуске

Когда я пытаюсь создать свое приложение с LLVM 2.0 в XCode 4.0.1 и на любом уровне или оптимизации, отличных от нулевой (ничего, кроме -O0), приложение вылетает после того, как я запускаю его на устройство (симулятор в порядке). Кажется, я не могу отладить сбой, поскольку этого не происходит, когда я встраиваю xcode и подключаюсь через GDB / LLDB. Кроме того, сбой происходит только тогда, когда я создаю приложение в командной строке с помощью xcodebuild; сборка через XCode IDE не дает сбоев даже при тех же настройках проекта. Я не вижу никакой полезной информации в журналах сбоев, так как сбой происходит вне моего кода:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00b53400
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   ???                             0x00b53400 0 + 11875328

Он не будет правильно отображать символы, поскольку не знает, в какой библиотеке произошел сбой.

Консоль устройства показывает некоторые операторы NSLog, которые наше приложение делает при запуске, затем загружается и отображается пользовательский интерфейс первого экрана, и после этого происходит сбой. Сборка без оптимизации или сборка с GCC 4.2 с любым уровнем оптимизации работает нормально.

Что здесь может происходить, и как я могу это отладить? Что может делать XCode IDE по-другому при сборке и развертывании приложения по сравнению с интерфейс командной строки xcodebuild?

10
задан Kevlar 30 March 2011 в 18:17
поделиться