Я пытаюсь вставить эквивалент asm {int 3}
(или аналогичный) в мою программу для iPhone. Моя цель состоит в том, чтобы Xcode остановился точно на линии, вызывающей сбой, без необходимости возиться со стеком вызовов (поэтому _Debugger
не звучит так, как хотелось бы, не то, чтобы я мог найти, в каком фреймворке он находится в любом случае. ..) и предоставьте мне возможность возобновить выполнение (вот почему я не доволен утверждением
).
(я привык к обоим таким поведениям в других системах, и я бы нравится воспроизводить их на 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.)