xcode - equivalencia - puntos círculo azul para que sirven
¿Por qué no funcionan mis puntos de interrupción? (30)
Acabo de resolver esto en XCode 4.2
, ninguno de los anteriores me ayudó. El asunto era (no estoy seguro de lo que realmente sucedió, pero, tal vez esto ayude a alguien): mi compañero de equipo creó nuevas configuraciones de compilación y proyecto actualizado 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:
- Producto -> Editar esquema ...
- Seleccione "Ejecutar% project_name.app%" (o lo que sea que cause el problema)
- En el combo de configuración de compilación, seleccione esa nueva configuración de compilación de mi compañero de equipo
Y eso es todo, los puntos de interrupción están de vuelta otra vez. Espero que esto ayude.
Tengo puntos de interrupción establecidos pero Xcode parece ignorarlos.
Al configurar su punto de corte, haga clic con el botón secundario y obtendrá varias opciones sobre cómo se maneja el punto de ruptura (log vars y continue, pause execution, 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 acerca de las versiones pasadas / futuras)
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 volverán amarillos al inicio, lo que puede causarte una frustración en el teclado y matar el proceso de depuración. Bueno, no hagas eso! Los símbolos no se cargarán hasta que la aplicación cargue la biblioteca, en cuyo punto los puntos de interrupción serán válidos. Me encontré con este problema con un complemento de navegador ... Los BP se desactivaron hasta que navegué a una página que creaba una instancia de mi complemento.
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 el desarrollo" en la ventana Organizador. Este teléfono se niega a punto de interrupción sin embargo. Mi antiguo 3GS tendrá un punto de interrupción, el mismo proyecto Xcode, la misma configuración ... solo un dispositivo diferente y está ejecutando iOS 4.0. Supongo que esto es un error de Xcode en 3.2.5, ya que tengo los símbolos. Después de haber probado todas las soluciones publicadas 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 cual depurar. Quizás sea obvio, ¿alguien puede confirmar?
Editar: actualizaré cuando pueda confirmar que esto es cierto.
Creo que un proyecto también puede corromperse con respecto a los puntos de interrupción. Tengo un proyecto, por ejemplo, que NO ROMPERá ningún punto de interrupción que recuerde de la sesión anterior. Primero escribí sobre esto here
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
Encontré el problema. De alguna manera, el " Show Disassembly when debugging " fue habilitado en mi XCode que crea ese problema. Cuando lo desactivé, todo mi depurador se detuvo en mi código fuente.
Puede encontrarlo en: Product->Debug Workflow->Show Disassembly
al depurar.
Estaba enfrentando el mismo problema cuando quería depurar un complemento web donde el ejecutable personalizado era Safari 5.1. Funcionaba 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.
Estaba teniendo este mismo problema (nuevamente). Después de comprobar tres veces "Cargar símbolos de forma perezosa" y eliminar y depurar indicadores de generación de información, hice lo siguiente:
- salir de Xcode
- abrir una ventana de terminal y cd al directorio del proyecto
- cd en el directorio .xcodeproj
- eliminar todo excepto el archivo .pbxproj (tenía frank.mode1v3 y frank.pbxuser)
Puede realizar la misma tarea en el buscador haciendo clic derecho / con opción 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!
He tenido mis puntos de interrupción no funcionan y luego he hecho Build / Clean All Targets para que funcionen nuevamente.
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 fuera de la caja, con ajustes, tan pocas posibilidades de que cualquiera de las configuraciones del depurador establecerse en el valor incorrecto) ...
Después de perder bastante tiempo reduciendo el problema, finalmente descubrí el culpable (para mi código):
A Xcode (/ LLVM) no le gustan los comandos del preprocesador #line
Bison-style.
Eliminarlos solucionó el problema (el depurador se detuvo en mis puntos de interrupción).
Me ha pasado lo mismo en XCode 6.3.1. Logré arreglarlo por:
- Ir a Ver-> Navegadores-> Mostrar Debug Navigators
- Haga clic con el botón derecho en la raíz del proyecto -> Mover puntos de interrupción (si se seleccionó la opción de usuario)
- (También seleccioné la opción compartir puntos de interrupción , aunque no estoy seguro de que sea necesario).
Después de hacer ese cambio, establezco las opciones Mover puntos de interrupción nuevamente al proyecto, y deselecciono la opción Compartir puntos de interrupción , y todavía funciona.
No sé exactamente por qué, pero esto me devuelve los puntos de inflexión.
No he hecho Xcode en un momento, pero le recomiendo que desactive "Zerolink" y "Cargar símbolos perezosamente"; eso solucionará la mayoría de los problemas. Zerolink es una abominación de todos modos.
Otra cosa que debes comprobar es que si tienes un archivo plist "Entitlements" para tu modo de depuración (posiblemente porque estás haciendo cosas con el Keychain), asegúrate de que el archivo plist tenga la fila "get-task-allow" = YES. Sin él, la depuración y el registro se romperán.
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 ser eliminados y que el modo de archivo, el propietario y la información de grupo deben establecerse en valores estándar. [DEPLOYMENT_POSTPROCESSING]
Para Xcode 4.x: Ir a producto> Depurar flujo de trabajo y desmarque "Mostrar desensamblaje al depurar".
Para Xcode 5.x Ir a depuración> Depurar flujo de trabajo y desmarcar "Mostrar desensamblaje al depurar".
Para Xcode 4:
go Product -> Debug -> Activate Breakpoints
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 de flecha azul):
Parece haber 3 estados para los puntos de interrupción en Xcode. Si haces clic en ellos, pasarán por las diferentes configuraciones. El azul oscuro está habilitado, el gris oscuro está desactivado y he visto un azul pálido que a veces requería que hiciera clic en el punto de interrupción nuevamente para que pasara al color azul oscuro.
Aparte de esto, asegúrese de que lo está ejecutando con el comando de depuración, no con el comando de ejecución. Puede hacerlo presionando la opción + comando + retorno, o la opción Ir (depuración) del menú de ejecución.
Puede activar / desactivar puntos de interrupción en el menú desplegable
Si está utilizando subversión, simplemente revertir los archivos de su proyecto ( solo ) a la última vez que supo que el depurador estaba funcionando.
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 reanudar.
También asegúrese de que la distribución AppStore de la aplicación no esté también instalada en el dispositivo.
Tengo Xcode 3.2.3 SDK 4.1 Los puntos de interrupción fallarán al azar. He encontrado que si limpias la compilación y usas el comando táctil en compilación, vuelven a funcionar.
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 son ignorados.
También parece que Xcode solo maneja las operaciones de punto de interrupción correctamente si actúas en el punto de interrupción cuando estás 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 tiene efecto, aunque el depurador indique que sí lo ha hecho. Así que me encontraré interrumpiendo puntos de interrupción deshabilitados, o en un punto de interrupción (ahora invisible) que eliminé antes.
Ve a las preferencias de Xcode Debugging. Asegúrese de que "Cargar símbolos de forma perezosa" NO esté seleccionado.
Ver esta publicación: ¿ Puntos de interrupción que no funcionan en Xcode? . Puede 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 funcionen los puntos de interrupción.
En primer lugar, estoy de acuerdo al 100% con las personas anteriores que dijeron apagar los Load Symbols Lazily
.
Tengo dos cosas más para agregar.
(Mi primera sugerencia parece obvia, pero la primera vez que alguien me la sugirió, mi reacción fue la siguiente: "vamos, por favor, realmente piensas que no sabría nada mejor ... oh").
Asegúrese de no haber configurado accidentalmente "Configuración de compilación activa" en "Liberar".
En "Objetivos" en la visualización gráfica de árbol de su proyecto, haga clic derecho en su objetivo y haga "Obtener información". Busque una propiedad llamada "Generate Debug Symbols" (o similar) y asegúrese de que esté CHECKED (también conocido como ON). Además, puede intentar encontrar (también en Target >> Get Info) una propiedad llamada "Debug Information Format" y configurarla en "Dwarf with dsym file".
Hay otras propiedades en Target >> Get Info que pueden afectarlo. Busque cosas como optimizar o comprimir el código y desactivarlo (supongo que está trabajando en modo de depuración, por lo que este no es un mal consejo). Además, busque cosas como quitar los símbolos y asegúrese de que también esté desactivado. Por ejemplo, "Strip Linked Product" debe establecerse en "No" para el objetivo Debug.