No se puede establecer un punto de observación en gdb o lldb

Estoy tratando de establecer un punto de observación mientras depuro mi aplicación en el dispositivo. No puedo configurarlo en gdb o lldb.

En lldb, no veo el watchpoint set opción en el depurador aunque esta página mencionó que existe. Cuando trato de correr watchpoint set, lldb me dice que el comando no es válido.

En gdb, puedo configurar el punto de observación (usando watch var), pero cuando trato de continuar con la ejecución me sale esto:

Can't set hardware watchpoints without the 'Z2' (write-watchpoint) packet.

No veo más resultados en la ventana de gdb ni creo que pueda interactuar con ellos. La aplicación también permanece colgada en este punto.

Estoy usando Xcode 4.3.2 (4E2002) en OS X Lion. Intenté configurar el punto de observación en dispositivos con iOS 5.1 e iOS 5.0.1 pero encontré el mismo problema en ambos.

preguntado el 03 de mayo de 12 a las 09:05

2 Respuestas

Antes de Xcode 4.5, los puntos de observación no eran compatibles con el desarrollo de iOS con lldb o gdb.

Con Xcode 4.5, son compatibles con la depuración de iOS y Mac OS X con lldb.

En Xcode, en la ventana de locales, puede hacer clic con el botón derecho/control-clic en una variable y habrá una opción para establecer un punto de observación en ella. Desde la consola del depurador, para agregar un punto de observación en una variable llamada foo, puede hacer

(lldb) watchpoint set variable foo

el comando inequívoco más corto siempre es válido en lldb, por lo que esto haría lo mismo,

(lldb) w s v foo

El x86 actual y el brazo de cpus solo admiten 4 puntos de observación que se configuran simultáneamente.

Respondido 17 Oct 12, 03:10

Eso es increíble. Una vez que haya actualizado a Xcode 4.5 y lo haya verificado, aceptaré su respuesta. - Chaitanya Gupta

@ChaitanyaGupta Olvidaste aceptar su respuesta. ¡Pero esto funciona para mí! :D - abrazo

Me doy cuenta de que los puntos de observación no funcionan demasiado bien con variables de puntero y con un entorno de subprocesos múltiples. ¿Es este el caso? - kakyo

No obtengo nada más que EXC_BREAKPOINT code=EXC_DA_ARM_DEBUG, y no puedo continuar después de que sucede. Tampoco se imprime información en la consola lldb cuando sucede. - Almo

Leí esto en algún lugar de los foros de desarrollo de Apple: "El comando set existe en la versión troncal pero aún no en la versión Xcode".

También estoy atascado con este problema en el que quiero vigilar una variable y ver dónde cambia su valor...

contestado el 30 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.