Tengo puntos de interrupción establecidos pero Xcode parece ignorarlos.
En primer lugar, estoy de acuerdo al 100% con la gente anterior que dijo apagarOFFLoad Symbols Lazily
.
Tengo dos cosas más que añadir.
(Mi primera sugerencia parece obvia, pero la primera vez que alguien me lo sugirió, mi reacción fue la siguiente: "vamos, por favor, realmente crees que no lo sabría más ... oh").
Asegúrate de no haber configurado accidentalmente "Configuración de construcción activa" en "Versión".
Debajo de "Objetivos" en la visualización del árbol gráfico de su proyecto, haga clic derecho en su Objetivo y haga "Obtener información". Busque una propiedad llamada "Generar símbolos de depuración" (o similar) y asegúrese de que esté COMPROBADA (también conocida como ON). 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 varias otras propiedades en Destino >> Obtener información que pueden afectarle. Busque cosas como la optimización o la compresión del código y desactive esa función (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é DESACTIVADO. Por ejemplo, "Eliminar producto vinculado" debe configurarse en "No" para el objetivo de depuración.
Ir a las preferencias de depuración de Xcode. Asegúrese de que "Cargar símbolos perezosamente" NO esté seleccionado.
Solo estaba teniendo este mismo problema (otra vez). Después de revisar tres veces "Cargar símbolos perezosamente" y eliminar y depurar los indicadores de generación de información, hice lo siguiente:
Puede realizar la misma tarea en el Finder haciendo clic con el botón derecho/opción haciendo clic en el paquete .xcodeproj y seleccionando "Mostrar contenido del paquete".
Cuando reinicié Xcode, todas mis ventanas se restablecieron a las posiciones predeterminadas, etc., ¡pero los puntos de interrupción funcionaron!
Para Xcode 4.x: Ir a Producto> Depurar flujo de trabajo y desmarcar "Mostrar desmontaje al depurar".
Para Xcode 5.x Ir a depuración> Depurar flujo de trabajo y desmarcar "Mostrar desmontaje al depurar".
Ver este post: ¿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!
Otra razón
Establezca DeploymentPostprocessing
en NO en BuildSettings - detalles aquí
En breve -
La activación de esta configuración indica que los binarios deben eliminarse y el modo de archivo, el propietario y la información de grupo deben establecerse en valores estándar. [DEPLOYMENT_POSTPROCESSING]
Para Xcode 4:
go Product -> Debug -> Activate Breakpoints
Llegó a esta página con el mismo problema (el código C en Xcode 6 no se detuvo en los puntos de interrupción) y ninguna de las soluciones anteriores funcionó (el proyecto estaba prácticamente fuera de la caja, en cuanto a configuración, por lo que hay pocas posibilidades de que alguna de las configuraciones del depurador se establece en el valor incorrecto) ...
Después de perder bastante tiempo reduciendo el problema, finalmente descubrí al culpable (para mi código):
Xcode (/ LLVM) no le gustan los comandos del preprocesador #line
de estilo Bison.
Eliminarlos solucionó el problema (el depurador se detuvo en mis puntos de interrupción).
Esto me tuvo en Xcode 9 por medio día frustrante. Terminó siendo una configuración de depuración simple.
Vaya a Depurar> Depurar flujo de trabajo y asegúrese de que 'Mostrar siempre desmontaje' esté desactivado. Simple como eso. :(
Solución para mí con XCode 9.4.1 (no se detuvo en ningún punto de interrupción):
Destino de compilación -> Configuraciones de compilación -> Nivel de optimización: cambiado de "Optimizar por velocidad" -> "Sin optimización" (ahora es más lento pero funciona)
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. Todavía estoy usando Xcode 3.2.5. Obtuve los símbolos del teléfono seleccionando "usar este dispositivo para desarrollo" en la ventana del Organizador. Este teléfono se niega a punto de interrupción sin embargo. Mi antiguo 3GS will breakpoint, el mismo proyecto de Xcode, la misma configuración ... solo un dispositivo diferente y funciona con iOS 4.0. Supongo que este es un error de Xcode en 3.2.5, ya que tengo los símbolos. Habiendo probado todas las soluciones publicadas aquí hasta ahora, he decidido que la solución a mi problema es seguir adelante y actualizar a XCode 4. Tal vez no pueda depurar de manera efectiva a menos que su SDK base sea al menos tan alto como el sistema en el que se debe depurar. Tal vez sea obvio, ¿alguien puede confirmar?
Edición: actualizaré cuando pueda confirmar que esto es cierto.
Eliminar mi carpeta de Build me solucionó el problema.
Tengo muchos problemas con los puntos de interrupción en Xcode (2.4.1). Uso 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 en el punto de interrupción cuando está en el proyecto que contiene la línea de origen en la que se encuentran los puntos de interrupción.
Si intento eliminar o deshabilitar los puntos de interrupción a través de otro proyecto, la acción a veces no tiene efecto, aunque el depurador indique que sí lo ha hecho. 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 realicé Build/Clean All Targets para que funcionen nuevamente.
Para esto, y también para Xcode 6 y superior, asegúrese de que el botón de estado de punto de interrupción esté activado (el botón con forma de flecha azul):
Esta podría ser una de las posibles razones para que esto suceda ... vaya a Producto> Esquema> Editar esquema> .. En Ejecutar> información> Ejecutable verifique "Depurar ejecutable".
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
Intenté todas las cosas anteriores, pero para mí solo desactivé los puntos de interrupción de la depuración una vez y luego activándolos funcionó.
Encontré el problema. De alguna manera, el " Mostrar Desensamblaje al depurar " se habilitó en mi XCode que crea ese problema. Cuando lo deshabilité, todo mi depurador se detuvo en mi código fuente.
Puede encontrarlo en: Product->Debug Workflow->Show Disassembly
al depurar.
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, establezca manualmente i en cero, luego presione el botón de reanudar.
Me ha pasado lo mismo en XCode 6.3.1. Me las arreglé para arreglarlo por:
Después de hacer ese cambio, establezco las opciones Mover puntos de interrupción al proyecto, y deseleccionando las opciones Compartir puntos de interrupción , y aún funciona.
No sé exactamente por qué, pero esto recupera mis puntos de ruptura.
En Xcode 6.4, necesitaba reiniciar mi Mac.
(Intenté habilitar/deshabilitar puntos de interrupción, reiniciar el dispositivo iOS, reiniciar Xcode, eliminar archivos de puntos de interrupción del paquete del área de trabajo ...)
Si está utilizando Subversion, simplemente revierta sus archivos de proyecto ( solo ) a la última vez que supo que el depurador estaba funcionando.
Aquí hay uno oscuro con el que me he topado: si estás trabajando en una biblioteca compartida (o un complemento), tus puntos de interrupción se pondrán de color amarillo en el inicio, lo que podría hacer que golpees el teclado con frustración y acabes con 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 deshabilitaron hasta que navegué a una página que creaba una instancia de mi complemento.
Esto sucede de vez en cuando con un proyecto iOS al menos. Para solucionarlo, tuve que reiniciar el dispositivo iOS, salir de Xcode y reconstruir el proyecto.
Asegúrese también de que la distribución de la aplicación en la AppStore no esté también instalada en el dispositivo.
He tenido problemas con Xcode perdiendo puntos de interrupción al usar el simulador y tener la configuración de Scheme Launch para "esperar el ejecutable". Cambie eso a "iniciar automáticamente" y los puntos de ruptura vuelven a la vida.
Otra cosa que debe verificar es que si tiene un archivo plist "Entitlements" 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 romperán.
Creo que un proyecto también puede corromperse con respecto a los puntos de interrupción. Tengo un proyecto, por ejemplo, que NO se interrumpirá en ningún punto de interrupción que se recuerde de la sesión anterior. Primero escribí sobre esto aquí
Tenía el mismo problema cuando quería depurar un complemento web donde el ejecutable personalizado era Safari 5.1. Estaba funcionando bien hasta que actualicé mi Safari a 5.1 desde 4.0.5. Una vez que instalé Safari 4.0.5 nuevamente, todos los puntos de interrupción comenzaron a funcionar sin modificar ninguna configuración de Xcode.
Tengo Xcode 3.2.3 SDK 4.1 Los puntos de interrupción fallarán al azar. Descubrí que si limpia la compilación y usa el comando táctil en la compilación, volverán a funcionar.
Otra razón por la que los puntos de interrupción pueden volverse amarillos es si el binario de la aplicación que está depurando se ha modificado desde que se ejecutó por primera vez. En mi caso, agregué una carpeta a la carpeta de Contenidos/Recursos de la aplicación después de haber depurado el programa una vez. En la ejecución de la depuración después de agregar la carpeta, los puntos de interrupción se volvieron amarillos y se ignoraron. Modifiqué mi procedimiento: hice una limpieza, una compilación, agregué la carpeta, luego corrí y todo estuvo bien.
Quizás Xcode (o OS X) crea y recuerda su propia firma digital de la aplicación (que no fue no firmada digitalmente) y luego, al detectar que la aplicación fue modificada, se niega a intentar establecer puntos de interrupción. Al hacer mis mods antes de la primera ejecución (depuración) de la aplicación, la firma digital se realizó con mis mods.
Todo esto en OS X 10.6.8 utilizando Xcode 3.2.2.
Solo resolví esto en XCode 4.2
, ninguno de los anteriores ayudó. El problema fue (no estoy seguro de lo que realmente sucedió, pero, quizás esto ayude a alguien): mi compañero de equipo creó nuevas configuraciones de compilación y actualizó el proyecto en SVN. Tenía la configuración de compilación anterior configurada en la configuración de Ejecutar esquema, por lo que los pasos para mí fueron:
Y eso es todo, los puntos de ruptura están de vuelta otra vez. Espero que esto ayude.
No he hecho Xcode en un momento, pero te recomiendo que deshabilites "Zerolink" y "Load Symbols Lazily"; Eso solucionará la mayoría de los problemas. Zerolink es una abominación de todos modos.
Parece que hay 3 estados para los puntos de interrupción en Xcode. Si haces clic en ellos irán a través de las diferentes configuraciones. El azul oscuro está habilitado, el gris atenuado está deshabilitado y, a veces, he visto un azul pálido que requería que volviera a hacer clic en el punto de interrupción para que se fuera del color azul oscuro.
Aparte de esto, asegúrese de iniciarlo con el comando debug, no con el comando run. Puede hacerlo presionando opción + comando + retorno, o la opción Ir (depurar) en el menú Ejecutar.
Al configurar su punto de ruptura, haga clic con el botón derecho y debería obtener varias opciones sobre cómo se maneja el punto de ruptura (registrar las variables y continuar, pausar la ejecución, etc.)
También asegúrese de que "Cargar símbolos perezosamente" no esté seleccionado en las preferencias de depuración.
(Se aplica a Xcode 3.1, no estoy seguro de las versiones pasadas/futuras)
Tener Xcode 5 y 6 GM causó que el primero perdiera la funcionalidad de punto de interrupción (las betas de Xcode 6 estaban bien).
Probé muchos de los métodos sugeridos, pero finalmente me di por vencido y ahora solo uso Xcode 6.
Puede marcar una configuración en la configuración de destino Compilación de Apple LLVM 4.1 Sección de generación de código Generar símbolo de depuración = SÍ
En mi caso, descubrí que los puntos de interrupción se desactivaron accidentalmente. Puede reactivarlo nuevamente a través de Depurar-> Activar puntos de interrupción [Cmd + Y]. Si observa marcadores de punto de ruptura de color gris en lugar del marcador azul habitual, este es probablemente el caso.
Al final resultó que siempre puede alternar la activación de los puntos de interrupción con las teclas Cmd + Y, es posible que tenga que presionar esta combinación de teclas sin notarlo. Este informe se basa en Xcode 7.2.
En el caso de Xcode 4 y versiones posteriores, * Cargar los símbolos con pereza * parece ser soltado . Así que refiera este post haga clic aquí
La explicación simple y detallada funcionó para mí.