Depuradores: Conceptos básicos

Publicado por

El desarrollo de un código para un proyecto de software tiende a ser un procedimiento prácticamente estándar: 1) Usted escribe el código fuente, por lo general en un lenguaje de programación de nivel alto tal como C++ o Java, que usa lenguaje e instrucciones que usted puede comprender. En un proyecto grande, el código generalmente se escribe en un número de módulos para facilitar la comprensión. 2) Usted combina sus módulos en un solo código largo usando un compilador de software, que traduce su texto que puede ser leído por un ser humano a un código objeto que puede ejecutar el microcontrolador. 3) Usted carga su código de objeto en la memoria de la computadora y comienza a ejecutar su software. 4) No funciona.

No se preocupe, eso es absolutamente normal. De hecho, el software comercial de escala empresarial típicamente contiene entre 20 y 30 errores, o error de falla, por miles de líneas de código incluso luego de que se lanza. Los errores "fatales" realmente ocurren porque el programa deja de funcionar; los errores no fatales permiten que el programa se ejecute, pero los resultados no son lo que usted espera.

Si su programa no hace lo que usted desea, ¿cuál es el próximo paso? Es aquí cuando aparece otra parte vital del software, el depurador.

Depurar es el proceso de ubicar y corregir los errores en el código del programa informático. Depurar un programa es iniciarlo con un código fallado, aislar las fuentes de todos los problemas y luego arreglarlos.

Un depurador es un programa que ejecuta a otro programa (es decir, su código), lo que le permitirá ejercitar un nivel de control por encima del código mientras que se ejecuta, y examinar elementos particulares cuando las cosas salen mal.

Funciones básicas de un depurador

Cuando usted ejecuta un programa que contiene errores, hay varias cosas que querrá hacer o conocer:

  • ¿Qué declaración o expresión estaba ejecutando el programa al momento de un error fatal?
  • Si ocurre un error fatal mientras se ejecuta una función, ¿qué línea del programa contiene el llamado de esa función?
  • ¿Cuáles son los valores de las variables del programa (incluyendo parámetros) en un punto particular durante la ejecución del programa?
  • ¿Cuál es el resultado de la evaluación de una expresión particular en algún punto en el programa?
  • ¿Cuál es la secuencia de declaraciones realmente ejecutadas en un programa?

Estas funciones exigen que usted sea capaz de examinar los datos del programa; obtener una lista de funciones actualmente en ejecución; establecer puntos de interrupción donde la ejecución del programa se suspenda para permitir que se analicen sus datos; y revisar las declaraciones de un programa para ver lo que realmente está sucediendo.

Para dar una idea más clara sobre la operación del código original, casi todos los depuradores trabajan a un nivel simbólico o de código fuente. En esencia, crean una apariencia de que usted está ejecutando declaraciones Java o C++ en su programa fuente en vez del código de máquina al que han sido realmente traducidos.

Cuando depura el código, es generalmente necesario examinar varios elementos de manera simultánea: el código que se está ejecutando, los registros del hardware en el microcontrolador, ubicaciones específicas de la memoria y los puntos de interrupción. Así, usted querrá mostrar múltiples ventanas en un formato GUI. La Figura 1 que aparece a continuación muestra una captura de pantalla del depurador, comentado para destacar algunas de las funciones disponibles.

 

Figura 1: la pantalla de un depurador para el Eclipse IDE, que muestra múltiples ventanas y sus funciones. (Fuente: Rice University)

Soporte de hardware para depuradores

En ocasiones hay otro programa, el emulador, que simula al propio microcontrolador de modo que usted no necesite ningún hardware real, pero para sistemas integrados usted normalmente ejecuta su código en el kit de desarrollo del microcontrolador o el panel con vistas a ser producido.

La mayoría de los microcontroladores incluyen características específicas diseñadas para facilitar la depuración, por ejemplo: soporte de hardware para avanzar una instrucción a la vez; modos de prueba especiales; y, soporte para puntos de interrupción.

Paquetes de herramientas de software

En muchos casos, los depuradores, junto con otras herramientas de desarrollo de software, se agrupan en un paquete denominado Entorno de desarrollo integrado o IDE, por sus siglas en inglés. Muchos fabricantes de microcontroladores suministran IDE para sus productos, y también están disponibles desde proveedores terceros hasta incluso la comunidad de fuente abierta. El Eclipse IDE que se muestra en la Figura 1 es un producto de fuente abierta.

Los IDE pueden ser productos independientes o (si es de un fabricante) agrupados con hardware de desarrollo para un microcontrolador específico. Para ayudarlo a comenzar, Arrow ofrece una selección de depuradores, herramientas de desarrollo e IDE de numerosos fabricantes.

Últimas noticias

Lo sentimos, pero su selección de filtros no devolvió resultados.

Hemos actualizado nuestra política de privacidad. Por favor tome un momento para revisar estos cambios. Al hacer clic en Acepto, usted está de acuerdo con la Politica de Privacidad de Arrow Electronics y sus condiciones de uso.

Nuestro sitio Web coloca cookies en su dispositivo para mejorar su experiencia y nuestro sitio. Lea más sobre las cookies que utilizamos y cómo desactivarlas aquió. Es posible que se utilicen las cookies y tecnologías de seguimiento con fines de marketing.
Al hacer clic en "Aceptar", usted está consintiendo la colocación de cookies en su dispositivo y el uso de tecnologías de seguimiento. Haga clic en "Leer más" a continuación para obtener más información e instrucciones sobre cómo desactivar las cookies y tecnologías de seguimiento. Si bien la aceptación de cookies y tecnologías de seguimiento es voluntaria, la desactivación de estos puede resultar en que el sitio web no funcione correctamente, y es posible que ciertos anuncios sean menos relevantes para usted.
Respetamos su privacidad. Lea nuestra política de privacidad aquió