Я пытаюсь помещать эквивалент 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.)
[Этот вопрос появился первоначально под другим названием. Я отредактировал его, надеюсь, сделать все более ясным.]