Подтвердить что ты не робот

Остановка в точках останова, вызывающих EXC_BAD_ACCESS

Мое приложение работает нормально и, как ожидалось, но по какой-то причине, когда я помещаю точки останова, вхождение в/над/возобновление приводит к сбою программы с EXC_BAD_ACCESS. Этого не происходит, если я удаляю/выключаю точки останова.

Любые советы?

4b9b3361

Ответ 1

Из того, что я вижу, LLDB, кажется, сломан в Xcode 4.2 и 4.2.1. Перейдите в GDB в настройках "Изменить схему".

Точки останова работают так же, как ожидалось после переключения на GDB.

Edit Scheme Dialog

Ответ 2

Для тех, кто может испытать одно и то же с Xcode 5.0.1 и Mavericks: Попробуйте удалить все свои схемы и автоматически создать их снова - это исправило это для меня.

Ответ 3

Где вы используете lldb вместо gdb? Я получаю это систематически с Xcode 4.2.1 и lldb. Возврат к gdb (booooo) решает проблему.

Ответ 4

Я использую Xcode 4.3.2 и Xcode автоматически обновлять отладку до LLDB (всплывающее диалоговое окно, и я подтверждаю его). Это действительно кошмар, он падает, когда я вхожу в любой вызов функции 8-9 из 10.

Изменить обратно в GDB теперь лучше!

Ответ 5

Это была ошибка с XCode 5.0.1 и Mavericks. Apple выпустила 5.0.2, и исправлена ​​ошибка!

Ответ 6

EXC_BAD_ACCESS означает, что у вас есть проблема с памятью где-то - очень вероятно, что что-то выпущено, когда вы ожидаете, что он все еще будет рядом (возможно, результат autorelease). Запустите статический анализатор, чтобы найти его. Я предполагаю, что вы видите сбой, потому что отладчик агрессивно занимает память при загрузке точек останова и, следовательно, помешает проблеме где-то еще.

Ответ 7

Для чего это стоит, у меня такая же проблема. Я могу взять код, который, как я знаю, верен, и если я вхожу в него с lldb, он падает после достижения точки останова. Я также получаю вывод, как это, когда я пытаюсь напечатать любые locals

(lldb) p self
error: use of undeclared identifier 'self'
error: 1 errors parsing expression

Похоже, lldb находится в Xcode 4.2.1. Единственный совет, который у меня есть, - это вернуться к gdb.