Отсутствует трассировка стека в отладчике XCode, когда исключение выдается как на симуляторе iOS, так и на устройстве - PullRequest
6 голосов
/ 18 октября 2011

Когда мое приложение выдает исключение, оно выводит в вывод отладчика следующее:

First throw call stack:
(0x310f88bf 0x3829d1e5 0x31e76015 0x31e7640d 0x31e764c5 0x9e903 0x9edfb 0x32b15d55 0x32b20e8d 0x310cb2dd 0x3104e4dd 0x3104e3a5 0x33c7cfed 0x330c0743 0x3267 0x3220)

Программный стек:
Xcode 4.2 в Lion 10.7.2 (Xcode 4.1 не установлен)

Я склоняюсь к тому, что это ошибка XCode, но вы видите что-нибудь очевидное, что я пропустил?

Что я пробовал / проверял

Настройки сборки:
Отладка
Обрезка символов отладки при копировании = НЕТ
Обвязка связанного продукта = НЕТ
Уровень оптимизации = -O0 and-Os
Символы, скрытые по умолчанию = ДА и НЕТ
Компилятор = LLVM 3.0 и LLVM GCC 4.2

Схема:
Отладчик = GDB и LLDB

Очистка:
Очистить
Очистить папку сборки
Удалить каталог производных данных (удалить из органайзера)

Устройства:
Симулятор iOS 5
iOS 5 iPhone 4
iOS 5 iPhone 3Gs

Случайно:
У меня изначально была эта проблема с обоими установленными Xcode 4.1 и 4.2, поэтому удалил оба и переустановил всего 4.2

Пробовал с разными проектами с одинаковыми результатами.

При работе с точками останова я вижу это в выводе отладчика перед исключением:

Catchpoint 36 (throw)Catchpoint 37 (catch)Pending breakpoint 2 - "__cxa_begin_catch" resolved
warning: Attempting to create USE_BLOCK_IN_FRAME variable with block that isn't in the frame.
warning: Attempting to create USE_BLOCK_IN_FRAME variable with block that isn't in the frame.

Catchpoint 36 (exception thrown).warning: Attempting to create USE_BLOCK_IN_FRAME variable with block that isn't in the frame.
warning: Attempting to create USE_BLOCK_IN_FRAME variable with block that isn't in the frame.

Ответы [ 2 ]

6 голосов
/ 21 октября 2011

Хорошо, нашел проблему: Ну, не я, а Джо (член phillyCocoa ) ... Но так как он не на SO, я опубликую его решение.

Цель развертывания была установлена ​​на 4.0, но поскольку символы отладки 4.0 необходимо загружать отдельно в Xcode 4.2, DSYM был недействительным.

2 способа исправить:
1. Установите символы отладки для 4.0 от предпочтений XCode.
2. Установите цель развертывания на 4.3 или выше.

1 голос
/ 18 октября 2011

Единственное, что бросается в глаза, - это то, что в сборках для разработки, вероятно, должна быть вообще отключена оптимизация с -O0.

...