Tengo puntos de interrupción establecidos pero Xcode parece ignorarlos.
Tengo puntos de interrupción establecidos pero Xcode parece ignorarlos.
Respuestas:
En primer lugar, estoy 100% de acuerdo con las personas anteriores que dijeron APAGAR Load Symbols Lazily
.
Tengo dos cosas más que agregar.
(Mi primera sugerencia suena obvia, pero la primera vez que alguien me la sugirió, mi reacción fue en esta línea: "vamos, por favor, realmente crees que no lo sabría mejor ... oh").
Asegúrese de no haber configurado accidentalmente "Configuración de compilación activa" en "Liberar".
En "Objetivos" en la visualización del árbol gráfico de su proyecto, haga clic con el botón derecho en su Objetivo y seleccione "Obtener información". Busque una propiedad llamada "Generar símbolos de depuración" (o similar) y asegúrese de que esté MARCADA (también conocida como ACTIVADA). Además, puede intentar encontrar (también en Destino >> Obtener información) una propiedad llamada "Formato de información de depuración" y establecerla en "Enano con archivo dsym".
Hay una serie de otras propiedades en Destino >> Obtener información que podrían afectarlo. Busque cosas como optimizar o comprimir código y apague esas cosas (supongo que está trabajando en un modo de depuración, por lo que este no es un mal consejo). Además, busque cosas como quitar símbolos y asegúrese de que también esté APAGADO. Por ejemplo, "Strip Linked Product" debe establecerse en "No" para el destino de depuración.
En Xcode 7, lo que funcionó para mí fue:
1) Asegúrese de que el objetivo -> esquema -> Ejecutar - esté en modo de depuración (antes de lanzamiento)
2) Asegúrese de marcar la opción "Depurar ejecutable" a continuación:
Ve a las preferencias de depuración de Xcode. Asegúrese de que "Cargar símbolos de forma perezosa" NO esté seleccionado.
Solo estaba teniendo este mismo problema (nuevamente). Después de verificar tres veces "Cargar símbolos de manera perezosa" y eliminar y depurar los indicadores de generación de información, hice lo siguiente:
Puede realizar la misma tarea en el buscador haciendo clic derecho / opción-clic en el paquete .xcodeproj y seleccionando "Mostrar contenido del paquete".
Cuando reinicié Xcode, todas mis ventanas se habían restablecido a las posiciones predeterminadas, etc., ¡pero los puntos de interrupción funcionaron!
Otra razón
Establecer DeploymentPostprocessing
en NO en BuildSettings - detalles aquí
En breve -
La activación de esta configuración indica que se deben eliminar los archivos binarios y que el modo de archivo, el propietario y la información del grupo deben establecerse en valores estándar. [DEPLOYMENT_POSTPROCESSING]
YES
solo en mi subproject
y luego los puntos de interrupción no funcionaron subprojects
. Y después de prepararlo NO
, ¡fue perfecto!
Vea esta publicación: ¿Los puntos de interrupción no funcionan en Xcode? . Es posible que esté presionando "Ejecutar" en lugar de "Depurar", en cuyo caso su programa no se ejecuta con la ayuda de gdb, en cuyo caso no puede esperar que los puntos de interrupción funcionen.
Una de las posibles soluciones para esto podría ser .... vaya a Producto> Esquema> Editar esquema> .. En Ejecutar> información> Ejecutable, marque "Depurar ejecutable".
Lo que lo resolvió en mi caso fue bastante simple, en Xcode - Producto - Carpeta de compilación limpia seguido de Producto - Ejecutar (no el botón Reproducir Xcode).
(Tuve el problema en Xcode 11 -beta 4 después de cambiar a la prueba unitaria con el botón de reproducción de Xcode presionando prolongadamente)
Llegué a esta página con el mismo problema (el código C en Xcode 6 no se detiene en los puntos de interrupción) y ninguna de las soluciones anteriores funcionó (el proyecto estaba prácticamente listo para usar, en cuanto a la configuración, por lo que hay pocas posibilidades de que alguna de las configuraciones del depurador ajustarse al valor incorrecto) ...
Después de perder bastante tiempo reduciendo el problema, finalmente descubrí al culpable (para mi código):
A Xcode (/ LLVM) no le gustan los #line
comandos de preprocesador de estilo Bison .
Eliminarlos solucionó el problema (el depurador se detuvo en mis puntos de interrupción).
Tengo muchos problemas con los puntos de interrupción en Xcode (2.4.1). Utilizo un proyecto que solo contiene otros proyectos (como una solución en Visual Studio). A veces encuentro que los puntos de interrupción no funcionan en absoluto a menos que haya al menos un punto de interrupción establecido en el proyecto inicial (es decir, el que contiene el punto de entrada para mi código). Si los únicos puntos de interrupción están en proyectos de "nivel inferior", simplemente se ignoran.
También parece que Xcode solo maneja las operaciones de punto de interrupción correctamente si actúa sobre el punto de interrupción cuando está en el proyecto que contiene la línea de origen en la que está el punto de interrupción.
Si intento eliminar o deshabilitar puntos de interrupción a través de otro proyecto, la acción a veces no surte efecto, aunque el depurador indique que sí. Así que me encontraré rompiendo en puntos de interrupción deshabilitados, o en un punto de interrupción (ahora invisible) que eliminé anteriormente.
Mis puntos de interrupción no funcionaron y luego hice Build / Clean All Targets para que funcionen nuevamente.
Creo que el problema podría ser la incompatibilidad entre las versiones del dispositivo y Xcode. Tengo este problema al intentar depurar en mi iPhone 4S con iOS 5.0.1. Sigo usando Xcode 3.2.5. Obtuve los símbolos del teléfono seleccionando "usar este dispositivo para desarrollo" en la ventana del Organizador. Sin embargo, este teléfono se niega al punto de interrupción. Mi viejo 3GS lo hará punto de interrupción, el mismo proyecto de Xcode, la misma configuración ... solo un dispositivo diferente y está ejecutando iOS 4.0. Supongo que este es un error de Xcode en 3.2.5, ya que tengo los símbolos. Después de haber probado todas las soluciones publicadas aquí hasta ahora, he decidido que la solución a mi problema es continuar y actualizar a XCode 4. Quizás no pueda depurar de manera efectiva a menos que su SDK base sea al menos tan alto como el sistema en el que depurar. Quizás eso sea obvio, ¿alguien puede confirmarlo?
Editar: actualizaré cuando pueda confirmar que esto es cierto.
Eliminar mi carpeta de compilación me solucionó el problema.
En Xcode 4
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
Si todo lo demás falla, en lugar de un punto de interrupción, puede llamar a la siguiente función:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Para reanudar, configure manualmente i en cero, luego presione el botón de reanudar.
Me ha pasado lo mismo en XCode 6.3.1. Logré arreglarlo por:
Después de hacer ese cambio, configuro las opciones Mover puntos de interrupción de nuevo en el proyecto y anulo la selección de Compartir puntos de interrupción opción , y aún funciona.
No sé exactamente por qué, pero esto recupera mis puntos de interrupción.
Probé todas las cosas anteriores, pero para mí solo la desactivación de los puntos de interrupción de depuración una vez y luego la activación funcionó.
Al establecer su punto de interrupción, haga clic con el botón derecho y debería obtener varias opciones sobre cómo se maneja el punto de interrupción (registrar vars y continuar, pausar la ejecución, etc.)
También asegúrese de que "Cargar símbolos de forma perezosa" no esté seleccionado en las preferencias de depuración.
(Se aplica a Xcode 3.1, no estoy seguro de versiones pasadas / futuras)
También asegúrese de que la distribución AppStore de la aplicación no esté también instalada en el dispositivo.
Otra cosa que debe verificar es que si tiene un archivo plist "Derechos" para su modo de depuración (posiblemente porque está haciendo cosas con el llavero), asegúrese de que el archivo plist tenga la fila "get-task-allow" = YES. Sin él, la depuración y el registro se interrumpirán.
Parece haber 3 estados para los puntos de interrupción en Xcode. Si hace clic en ellos, pasarán por las diferentes configuraciones. El azul oscuro está habilitado, el gris está deshabilitado y he visto un azul pálido a veces que me obligaba a hacer clic en el punto de interrupción nuevamente para que pasara al color azul oscuro.
Aparte de esto, asegúrese de iniciarlo con el comando debug, no con el comando de ejecución. Puede hacerlo presionando la opción + comando + retorno, o la opción Ir (depurar) del menú de ejecución.
Tengo Xcode 3.2.3 SDK 4.1 Los puntos de interrupción fallarán al azar. Descubrí que si limpias la compilación y usas el comando táctil bajo compilación, funcionan de nuevo.
Aquí hay uno oscuro con el que me he encontrado: si está trabajando en una biblioteca compartida (o un complemento), sus puntos de interrupción se volverán amarillos al inicio, lo que podría hacer que golpee su teclado con frustración y elimine el proceso de depuración. Bueno, ¡no hagas eso! Los símbolos no se cargarán hasta que la aplicación cargue la biblioteca, momento en el que los puntos de interrupción serán válidos. Me encontré con este problema con un complemento del navegador ... Los BP se desactivaron hasta que navegué a una página que creó una instancia de mi complemento.