Остановка в точках останова, вызывающая EXC_BAD_ACCESS - PullRequest
13 голосов
/ 28 ноября 2011

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

Любой совет?

Ответы [ 7 ]

18 голосов
/ 21 января 2012

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

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

Edit Scheme Dialog

12 голосов
/ 24 октября 2013

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

1 голос
/ 14 ноября 2013

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

1 голос
/ 28 апреля 2012

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

Переход на GDB теперь выглядит лучше!

1 голос
/ 05 декабря 2011

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

0 голосов
/ 13 декабря 2011

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

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

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

0 голосов
/ 28 ноября 2011

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

...