¿Puedo crear un punto de interrupción en el código en iOS, como `__asm {int 3}` en VC ++, y continuar la ejecución después de haber sido alcanzado?
Estoy tratando de poner el equivalente deasm{int 3}
(o similar) en mi programa de iPhone. Mi objetivo es hacer que Xcode se detenga exactamente en la línea ofensiva, sin tener que jugar con la pila de llamadas (entonces_Debugger
no suena como lo haría, no es que pueda encontrar en qué marco se encuentra de todos modos ...), y me permite reanudar la ejecución (por lo que no estoy contento conassert
)
(Estoy acostumbrado a estos dos comportamientos en otros sistemas, y me gustaría reproducirlos en iOS).
Mi mejor intento hasta ahora ha sido este:
asm volatile("bkpt 1");
Esto detiene Xcode en la línea en cuestión, pero cuando trato de continuar con Cmd + Alt + P, Xcode parece ejecutar elBKPT
de nuevo. Y si uso Shift + Cmd + O, solo obtengo esto:
Watchdog has expired. Remote device was disconnected? Debugging session terminated.
(No hace falta decir que el dispositivo remoto todavía está conectado).
No tengo mucha experiencia con iOS, Mac, ARM, gdb o gccasm
cosas. Así que ya estoy perplejo. ¿Hay alguna forma de hacer que iOS y Xcode hagan lo que quiero?
(No sé si hace la diferencia, pero a juzgar por el tamaño de la instrucción, mi programa es código ARM).