udacity español courses xcode debugging

xcode - español - Romper en_NSLockError() para depurar... ¿Cómo?



udacity español (3)

Durante la depuración, la consola siempre me muestra un mensaje de error: "Interrumpir _NSLockError () para depurar"

Mi suposición es: en XCode tengo que aparecer un cierto punto de quiebre, para que el depurador se detenga en el punto donde ocurre este error.

¿Cómo puedo hacer esto?


1 / Desde el menú, elija Crear -> Construir y depurar

2 / Haga clic en el icono "GDB" - se cambiará a la "consola de depuración"

3 / Presiona Control + C para interrumpir tu binario. Obtendrá el gdb prompt.

4 / escriba "b _NSLockError" y continúe la ejecución después de configurar el punto de interrupción.

(gdb) b _NSLockError Breakpoint 8 at 0x911db1a9 (gdb) c Continuing.

5 / puede interactuar con GDB tal como se ejecutaba desde la consola, es decir, puede presionar Ctrl + C nuevamente y ver los puntos de interrupción actuales:

(gdb) info breakpo Num Type Disp Enb Address What 8 breakpoint keep y 0x911db1a9 <_NSLockError+9>


Para hacer esto automáticamente para su proyecto en XCode:

  1. En Xcode, Opción-Comando-B para abrir la ventana Puntos de interrupción (o Ejecutar> Mostrar> Puntos de interrupción).
  2. Donde dice "Haga doble clic para el símbolo", haga doble clic en ... y pegue en "_NSLockError".
  3. Haga clic en cualquier otro lugar de la ventana y su nueva entrada se actualizará automáticamente (o simplemente agregue manualmente) con Module = "Foundation" (sin las comillas)
  4. Build & Go y ahora caerá en el depurador automáticamente cuando llegue a un punto muerto detectado automáticamente.

Usando el Xcode 4 GUI:

  1. Abra el navegador de puntos de interrupción (Comando + 6 o Ver> Navegadores> Mostrar navegador de puntos de interrupción)
  2. Haga clic en ''+'' en la esquina inferior izquierda y elija ''Agregar punto de interrupción simbólico ...''
  3. Ingrese ''_NSLockError'' en el campo Símbolo
  4. Introduzca ''Fundación'' en el campo Módulo
  5. Haga clic en ''Hecho''

Como se indica anteriormente, el depurador se interrumpirá en el bloqueo, lo que resulta en un interbloqueo, por lo que puede verificar la pila de llamadas y, con suerte, determinar dónde se produjo el bloqueo original.