Могу ли я создать точку останова в коде в iOS, например `__asm ​​{int 3}` на VC ++, и продолжить выполнение после это был хит?

Я пытаюсь вставить эквивалент 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.)

15
задан DaveyDaveDave 24 August 2018 в 07:43
поделиться