La depuración de puntos de interrupción de iOS más completa

Como programador, la capacidad de codificación es la base para la supervivencia. La codificación es la retirada de la lógica personal. Como dice el refrán, "un hombre sabio cometerá un error si piensa en ello". Casi nadie puede garantizar que su programa sea completamente correcto. Por lo tanto, en el trabajo de programación, las herramientas de depuración de código son extremadamente importante. El artefacto de herramienta de depuración lldb está integrado en Xcode, que puede encontrar fácilmente errores ocultos en el código. Este artículo ofrece una introducción completa al mismo.

Agregar un punto de interrupción en Xcode es muy simple: haga clic en la línea de código de la izquierda y aparecerá una etiqueta azul, lo que significa agregar un punto de interrupción:

640?wx_fmt=otro

 

A continuación, observe la operación de promoción del punto de interrupción:

1 Ctrl + punto de interrupción/clic derecho en el punto de interrupción, abre el menú de edición del punto de interrupción:

 

640?wx_fmt=otro

Haga clic en Editar punto de interrupción para abrir el submenú para editar el punto de interrupción:

 

640?wx_fmt=otro

 

La condición en la posición 1 ingresa una expresión booleana para controlar la condición de activación del punto de interrupción; la
posición en 2 indica el número de veces de ejecución para ignorar el punto de interrupción;
la posición en 3 se usa para agregar acciones adicionales cuando se activa el punto de interrupción, lo que se divide en seis tipos: AppleScript, Captura de fotogramas de GPU, Comando de depuración, Mensaje de registro, Comando Shell y Sonido;
3.1 添加 Log 输出信息:

640?wx_fmt=otro

 

Los parámetros se describen a continuación:

3.2 添加 lldb 命令:

 

comando lldb

640?wx_fmt=otro

Los comandos comúnmente utilizados incluyen:
1 po: similar al comando po en la consola;
2 bt: información de la pila de llamadas de función;
3 expresión: modificar el valor de la variable; abreviado como p/e
4 script: ingresar al programa de script Python;
5 Facebook admite el lenguaje Python basado en lldb Funciones admitidas, código abierto, su propio proyecto de depuración más detallado: chisel
6 br/lista de puntos de interrupción: enumera todos los puntos de interrupción;
rastreo de 7 subprocesos: obtiene la pila de llamadas del subproceso actual;
lista de 8 subprocesos: enumera todos los subprocesos;
9 parada de destino - gancho:,
9.1 在每次 stop 的时候去执行一些命令;例如:
(lldb) target stop-hook add -o "frame variable”ejecuta el comando de variable de marco cada vez que se detiene;
9.2 target stop-hook list: 列出 hook 的所有断点;
9.3 target stop-hook del 编号: 删除 hook 的断点;
10 líneas de comando implementan la depuración de control:

 

c/continuar: continuar 
siguiente/n: siguiente 
/s paso/s: ingresar 
finalizar/f: saltar

Puede consultar la interfaz gráfica de Xcode para comprender:

640?wx_fmt=otro

 

1 Habilitar, deshabilitar la depuración de puntos de interrupción
2 Continuar la ejecución
3 Ejecución de un solo paso
4 Ingresar a la función
5 Salir de la función
6 Depuración de la interfaz de usuario
7 Seleccionar hilo

Retorno de 11 subprocesos: valor de retorno de la función de control, omita directamente esta función;

Agregue otros tipos de puntos de interrupción:

 

1 punto de interrupción de error rápido

Los puntos de interrupción globales rápidos son similares a los puntos de interrupción de puntos de interrupción de excepción.

2 Punto de interrupción de excepción

Puntos de interrupción globales de Objective-C. Agregue un punto de interrupción global, por ejemplo, cuando la matriz está fuera de los límites, se imprimirá la siguiente información:

 

***** Terminando la aplicación debido a una excepción no detectada 'NSRangeException'**, **razón: '*** -**[**__NSArray0 objectAtIndex:**]**: índice 1 más allá de los límites para NSArray vacío'**

Pero no puede localizar con precisión la posición específica de la matriz. Después de agregar un punto de interrupción global, el punto de interrupción puede detenerse exactamente en la matriz fuera de límites  .

3 Punto de interrupción de error de OpenGL ES

OpenGL es una interfaz unificada basada en lenguaje C para programación de gráficos 2D/3D, que es compatible con escritorios Windows, Mac, Linux/Unix. OpenGL ES es la versión para dispositivos integrados OpenGL, es decir, la especificación de programación para Android/iPhone, otros dispositivos integrados y otros dispositivos móviles. (Además, hay un WebGL correspondiente en la web)

Ahora está disponible la versión OpenGL actualmente compatible con la plataforma iOS
OpenGL1.0/OpenGL2.0/OpenGL3.0. Cuando use la biblioteca de clases OpenGL en Cocoa Framework para dibujar imágenes 2D/3D, puede usar esta opción para agregar puntos de interrupción.

4 Punto de ruptura simbólico

Agregue puntos de interrupción basados ​​en caracteres. Por ejemplo, agregue el siguiente punto de interrupción:

640?wx_fmt=otro

Los puntos de interrupción se agregarán automáticamente en todas las funciones denominadas btn_leftClick en el proyecto.

5 Punto de interrupción del error de restricción

Después de agregar el punto de interrupción, utilizando Autolayout para establecer deliberadamente la violación de la restricción, no se imprimió nada. Este tipo de punto de interrupción rara vez se utiliza.

6 Punto de interrupción de falla de prueba

Puntos de interrupción globales de prueba unitaria. Cuando se agrega, cuando falla una aserción XCAssert de prueba unitaria, permanezca en la función. En este momento, puede usar el comando lldb p para forzar que la condición de modificación cumpla con la afirmación y luego continuar con la depuración.

Lo anterior es la introducción de varios comandos que se pueden aplicar en la depuración de código de iOS. Entre ellos, se presenta en detalle el comando lldb en el proceso de depuración. Se clasifican e introducen los puntos de interrupción globales, cubriendo básicamente los escenarios utilizados en la programación diaria. Para obtener parámetros de comando más detallados en lldb y Constraint Error Breakpoint su uso detallado, consulte la documentación oficial de Apple. Si tiene alguna pregunta durante el uso, deje un mensaje para comunicarse.

Referencia:
1 Depuración del punto de interrupción de iOS Xcode (punto de interrupción) 
2 Configuración del punto de interrupción de iOS (depurador) 
3 Documentación oficial de lldb
4 Depuración de iOS
5 OpenGLES_ProgrammingGuide

Supongo que te gusta

Origin blog.csdn.net/KLong27/article/details/106081378
Recomendado
Clasificación