Могу ли я создать точку останова в коде в iOS, например, `__asm {int 3}` в VC ++, и продолжить выполнение после того, как она была нажата?
Я пытаюсь поставить эквивалентasm{int 3}
(или аналогичный) в моей программе iPhone. Моя цель состоит в том, чтобы Xcode остановился точно на ошибочной строке, без необходимости возиться со стеком вызовов (так_Debugger
не похоже, что это сделало бы, не то, чтобы я мог найти, в каком фреймворке это в любом случае ...), и дать мне возможность возобновить выполнение (вот почему я не доволенassert
).
(Я привык к такому поведению в других системах, и я хотел бы воспроизвести их на iOS.)
Моя лучшая попытка была такова:
asm volatile("bkpt 1");
Это останавливает Xcode на рассматриваемой строке, но когда я пытаюсь продолжить с помощью Cmd + Alt + P, появляется Xcode для запускаBKPT
снова. И если я использую Shift + Cmd + O, я просто получаю это:
Watchdog has expired. Remote device was disconnected? Debugging session terminated.
(Излишне говорить, что удаленное устройство все еще подключено.)
У меня нет большого опыта работы с iOS, Mac, ARM, GDB или GCCasm
вещи. Так что я уже в тупике. Есть ли способ заставить iOS и Xcode делать то, что я хочу?
(Я не знаю, имеет ли это значение, но, судя по размеру инструкции, моя программа представляет собой код ARM.)