Я пытаюсь вставить эквивалент 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 или gcc asm
.Так что я уже в тупике.Есть ли какой-нибудь способ заставить iOS и XCode делать то, что я хочу?
(я не знаю, имеет ли это значение, но, судя по размеру инструкции, моя программа представляет собой код ARM.)