Перерыв на _NSLockError() для отладки... Как?
Во время отладки консоль всегда выплевывает мне сообщение об ошибке: "Перерыв на _NSLockError() для отладки"
Мое предположение: в XCode я должен появиться некоторая ошибка, так что отладчик останавливается в точке, где происходит эта ошибка.
Как я могу это сделать?
Ответы
Ответ 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".
- Щелкните в другом месте окна, и ваша новая запись будет автоматически обновляться (или просто добавлять ее вручную) с помощью модуля = "Основание" (без кавычек).
- Сборка и переход, и вы автоматически попадете в отладчик автоматически, когда попадете в автоматически обнаруженный тупик.