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

Перерыв на _NSLockError() для отладки... Как?

Во время отладки консоль всегда выплевывает мне сообщение об ошибке: "Перерыв на _NSLockError() для отладки"

Мое предположение: в XCode я должен появиться некоторая ошибка, так что отладчик останавливается в точке, где происходит эта ошибка.

Как я могу это сделать?

4b9b3361

Ответ 1

1/В меню выберите "Сборка → " Сборка и отладка "

2/Нажмите значок "GDB" - вы будете переключены на "консоль отладчика"

3/Нажмите Control + C, чтобы прервать ваш двоичный файл. Вы получите приглашение gdb.

4/введите "b_NSLockError" и продолжите выполнение после установки точки останова.

(gdb) b _NSLockError
Breakpoint 8 at 0x911db1a9
(gdb) c
Continuing.

5/вы можете взаимодействовать с GDB так же, как и с консоли, т.е. снова Ctrl + C и просматривать текущие точки останова:

(gdb) info breakpo
Num Type           Disp Enb Address    What
8   breakpoint     keep y   0x911db1a9 <_NSLockError+9>

Ответ 2

Использование графического интерфейса Xcode 4:

  • Откройте навигатор Breakpoints (Command + 6 или View > Navigators > Show Breakpoint Navigator)
  • Нажмите "+" в левом нижнем углу и выберите "Добавить символическую точку останова..."
  • Введите "_NSLockError" в поле "Символ"
  • Введите 'Foundation' в поле Module
  • Нажмите "Готово"

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

Ответ 3

Чтобы сделать это автоматически для вашего проекта в XCode:

  • В Xcode, Option-Command-B откроется окно Breakpoints (или Run > Show > Breakpoints).
  • Где он говорит "Двойной щелчок по символу", дважды щелкните... и вставьте в "_NSLockError".
  • Щелкните в другом месте окна, и ваша новая запись будет автоматически обновляться (или просто добавлять ее вручную) с помощью модуля = "Основание" (без кавычек).
  • Сборка и переход, и вы автоматически попадете в отладчик автоматически, когда попадете в автоматически обнаруженный тупик.