2011-03-30 11 views
6

Mis puntos de interrupción han dejado de funcionar correctamente en la última versión de XCode 4. Sin cambios en la configuración del proyecto, los puntos de interrupción ya no se rompen en la línea que están configurados.Los puntos de corte XCode 4 no se rompen en la línea correcta

Por ejemplo, en una función puedo establecer un punto de interrupción en cualquier lugar dentro de su cuerpo, pero el código siempre se romperá en la última línea de la función.

En otra instancia, puedo establecer un punto de interrupción en cualquier lugar de una función y el código se dividirá en una línea en el medio de una función diferente en el mismo archivo. El seguimiento después del salto muestra que se rompió en el lugar equivocado y no es solo un problema de sincronización de archivo/depurador.

No tengo idea de por qué ha comenzado esto. Sin embargo, parecía comenzar en nuevos puntos de ruptura mientras que los antiguos funcionaban. Cualquier punto de interrupción nuevo que agregue se rompe en el lugar equivocado. ¡Y recientemente, algunos archivos ahora ni siquiera se rompen! Solo puedo suponer que el punto de interrupción es tan erróneo que se movió al código que no se llama. He realizado numerosas búsquedas en Internet y búsquedas en el foro para este problema, y ​​aunque he encontrado personas con problemas similares, no había solución o la solución enumerada (reiniciar el dispositivo, cambiar el resultado de depuración, desactivar la optimización, etc.) no funcionó para mi.

Vale la pena mencionar que principalmente estoy codificando en C++ utilizando archivos .mm. Durante el último año de desarrollo en XCode 3, y durante los últimos meses en XCode 4 las cosas han estado bien. Tengo la depuración configurada correctamente. Sin optimización en una ejecución de depuración, sin eliminación de código muerto y estoy utilizando el compilador LLVM 2.0 con DWARD con el archivo de depuración dSYM. Sin embargo, cambiar estos valores no hace diferencia.

¡Por favor ayuda, me está volviendo loco!

Una actualización de esto. Comenzó a suceder nuevamente en una máquina completamente nueva con una nueva instalación de Lion y xcode. Todo el editor está fuera de control. Ejemplo a continuación de los errores que aparecen en las líneas incorrectas.

Errors on the wrong lines!

+0

pruebas A poco más demuestra que no todos los archivos se ven afectados, sólo los archivos que recientemente he editado. Es casi como si los puntos de ruptura usaran números de línea de una versión anterior del archivo que estoy editando. – MrMaxP

Respuesta

0

¿Ha limpiado sus objetivos? Shift-Cmd-K.

+0

Sí. He hecho una limpieza completa, incluso he entrado y eliminado manualmente los directorios de compilación. ¡Incluso probé una obtención completa de forzosamente en una máquina limpia que no se ha utilizado para construir el proyecto antes y todavía sucede! Me estoy quedando sin idea ahora. Intentaré crear un nuevo proyecto y agregar todos los archivos de nuevo manualmente a continuación. Eso seguramente debe arreglarlo. – MrMaxP

+0

¿Qué * depurador * estás usando? Usted mencionó el compilador LLVM, pero ¿está utilizando LLDB o GDB? Puede encontrar esta configuración en la acción Ejecutar de su esquema activo. –

+0

Estoy usando GDB (no tengo una opción de LLDB) – MrMaxP

1

He solucionado esto, aunque no he encontrado la causa.

Eliminé las referencias del proyecto para los archivos que no funcionaban con puntos de interrupción. Luego hice una limpieza completa y fui a las carpetas y borré cualquier compilación y datos temporales. Luego abrí el paquete del proyecto y borré todos los datos, excepto el archivo del proyecto en sí. Luego compilé por lo que arrojó errores debido a los archivos perdidos. Luego volví a poner los archivos en el proyecto.

¡Ahora, exactamente los mismos archivos funcionan bien con puntos de interrupción!

No tengo idea de por qué, pero feliz de que se solucione.

+0

Me enfrento exactamente al mismo problema. Probé los mismos pasos que mencionaste, pero no funcionó para mí. ? :(Cualquier sugerencia – iHS

+1

La solución más sencilla es utilizar el Organizador (Proyectos pestaña) para eliminar el "Derivado de datos" para el proyecto afectada una "limpia" no hacer esto –

0

Esto comenzó a sucederme después de actualizar a XCode 4. Acabo de eliminar todos los puntos de interrupción, hice una limpieza y luego volví a agregar mis puntos de interrupción. Parece que funciona bien ahora.

3

Por lo que he leído, Xcode tiende a confundirse con los puntos de interrupción y la forma de deshacerse del problema fuera de sincronización es limpiar los "Datos Derivados"; dos maneras de limpiarlo hasta ahora lo he encontrado (las instrucciones son válidas para Xcode 4).x):

a) van en el organizador, en virtud de los Proyectos, seleccione el proyecto y golpear esa eliminación en los datos derivados

o

b) ir en el menú del producto, mantenga pulsado el botón ALT en el teclado y observe que el menú está cambiando ... así que la transformación limpia a "Carpeta de compilación limpia ..."

+0

Todavía estoy teniendo el problema...: (Investigar más me llevó a que el final del código fuente del proyecto sea incorrecto; no puedo explicar por qué, pero a veces al ingresar el código normal, la tecla Intro no actúa como una entrada normal, sino más bien como un \ r' llave y la línea de numeración de Xcode se confunden Aquí hay una captura de pantalla:. [enlace a la imagen] (http://www.sthack.com/stackoverflow/xcode-bug.png) – VE2BXA

3

Con "en Configuración de compilación" bajo el objetivo del proyecto cambie el "Nivel de optimización" para "Depurar" "a" Ninguno ".

encontré que esto esté arreglado el problema para mí.

+1

Esto funcionó para mí, gracias.. – Emmanuel

0

he dado cuenta de por qué sucede esto ahora. Como se menciona en una de las respuestas, puede solucionarlo eliminando los datos derivados. Esto siempre solucionará el problema. Por alguna razón, el editor pierde su relación entre el código fuente y el marcado del código que utiliza para cruzar los puntos de corte de referencia y los errores, etc. La eliminación de los datos derivados lo obliga a recrear esto.

creo que esto sólo sucede con los archivos utilizando código C o C++. Apple parece ignorar los desarrolladores de C++ en iOS. Conozco a muchos desarrolladores de juegos profesionales y cada uno usa C++ para escribir juegos. La falta de soporte de Apple es molesta.

Cuestiones relacionadas