La depuración es el proceso de identificar y eliminar errores del software o programa. Se refiere a la identificación de errores en la lógica del programa, códigos de máquina y ejecución. Da información paso a paso sobre la ejecución del código para identificar la falla en el programa.
Depuración de código de máquina: traducir el lenguaje ensamblador a código de máquina es similar a construir un circuito a partir de un diagrama esquemático. La depuración puede ayudar a determinar:
- Valores de registro.
- Flujo de programa.
- Punto de entrada y salida de una función.
- Entrada en la declaración si o si no .
- Bucle de código.
- Comprobación de cálculo.
Fuentes comunes de error:
- Seleccionar un código incorrecto
- Olvidar el segundo o tercer byte de instrucción
- Especificar ubicaciones de salto incorrectas
- No invertir el orden de los bytes alto y bajo en una instrucción Jump
- Escribir direcciones de memoria en decimal en lugar de hexadecimal
- Error al borrar el acumulador al sumar dos números
- No borrar los registros de acarreo
- Error al establecer la bandera antes de la instrucción de salto
- Especificar una dirección de memoria incorrecta en la instrucción Jump
- Uso de una combinación incorrecta de instrucciones de rotación
El proceso de depuración se divide en dos partes:
- Depuración estática: es similar a la inspección visual de la placa de circuito, se realiza con papel y lápiz para verificar el diagrama de flujo y los códigos de la máquina. Se utiliza para la comprensión de la lógica del código y la estructura del programa.
- Depuración Dinámica: Implica observar el contenido del registro o salida después de la ejecución de cada instrucción (en la técnica de un solo paso) o un grupo de instrucciones (en la técnica del punto de interrupción).
En un microprocesador de placa única, las técnicas y herramientas comúnmente utilizadas en la depuración dinámica son:- Single Step: Esta técnica permite ejecutar una instrucción a la vez y observar los resultados de cada instrucción. En general, esto se construye utilizando un circuito lógico cableado. A medida que presionamos la tecla de ejecución de un solo paso, podremos observar el contenido del registro y la ubicación de la memoria. Esto ayuda a detectar:
- direcciones incorrectas
- ubicación de salto incorrecta en bucles
- datos incorrectos o códigos faltantes
Sin embargo, si hay un bucle grande, la depuración de un solo paso puede ser muy agotadora y llevar mucho tiempo. Entonces, en lugar de ejecutar el ciclo n veces, podemos reducir el número de iteraciones para verificar la efectividad del ciclo. La técnica de un solo paso es muy útil para programas cortos.
- Punto de interrupción : la función de punto de interrupción suele ser una rutina de software que permite a los usuarios ejecutar un programa en secciones. Los puntos de interrupción se pueden establecer mediante la instrucción RST. Cuando presionamos la tecla Ejecutar, el programa se ejecutará hasta el punto de interrupción. Los registros se pueden examinar para obtener el resultado esperado. Con la función de punto de interrupción, aísle el segmento de programa con errores. Luego, ese segmento se puede depurar utilizando la función de un solo paso. Suele utilizarse para comprobar:
- Bucle de tiempo
- sección de E/S
- Interrupciones
- Examen de registro: La tecla de examen de registro le permite examinar el contenido del registro del microprocesador. Esta técnica se utiliza junto con la función de punto de interrupción o de un solo paso.
- Single Step: Esta técnica permite ejecutar una instrucción a la vez y observar los resultados de cada instrucción. En general, esto se construye utilizando un circuito lógico cableado. A medida que presionamos la tecla de ejecución de un solo paso, podremos observar el contenido del registro y la ubicación de la memoria. Esto ayuda a detectar: