# Depuradores: importantes herramientas para detectar errores de software

Todo el que aprende a programar se encuentra a menudo con el término *debugging*. Este proceso, que en español se conoce como *depuración*, es un **análisis exhaustivo del código fuente** de un programa informático que tiene como objetivo identificar posibles errores. Por ello, si quieres asegurarte de que el *software* que desarrollas **funcione adecuadamente en todas las plataformas y dispositivos** para los que está pensado, no dudes en aplicar un depurador. En este artículo te contamos qué es exactamente un depurador, cómo funcionan estos programas tan útiles y en qué ámbitos se usan.

## ¿Qué es un depurador?

Un depurador es un programa que permite **detectar y diagnosticar fallos en programas informáticos**. El objetivo de estas herramientas es garantizar, a largo plazo, que el *software* funcione en todos los dispositivos y plataformas para los que está pensado. Por este motivo, muchos depuradores no solo analizan el [código fuente](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/codigo-fuente-definicion-con-ejemplos/ "Código fuente: definición con ejemplos") del programa, sino también su interacción con el [sistema operativo](https://www.ionos.com/es-us/digitalguide/servidores/know-how/el-sistema-operativo/ "El sistema operativo") que lo ejecuta y con los elementos de *hardware*. El proceso de depuración o *debugging* ocurre **mientras el programa se ejecuta**, de forma que no es necesario cerrarlo para llevar a cabo el análisis.

Nota El término ***depuración* o *debugging*** describe el proceso de detección de fallos de *software*. No se usa exclusivamente para describir lo que realiza un depurador o *debugger*, sino también para referirse a la **búsqueda de errores** mediante otros métodos.

La palabra *debugging* está compuesta por el prefijo inglés ***de-*** (con una función similar a la del prefijo *des-* en español) y la palabra ***bug*** (*bicho*). Este último término se usa desde hace décadas en el ámbito del desarrollo de *software* para hacer referencia a errores de todo tipo en los programas. De hecho, ya se usaba entre ingenieros en el siglo XIX para describir fallos de funcionamiento. Por este motivo, la corrección de los errores de *software* se denomina también *bugfix*.

Definición Los depuradores o *debuggers* son programas informáticos que facilitan a los desarrolladores la tarea de buscar errores en el *software*. Gracias a ellos, los errores detectados durante la depuración o *debugging*, también llamados *bugs*, pueden corregirse fácilmente. Esto, a su vez, permite garantizar el buen funcionamiento del *software* a largo plazo.

## ¿Qué funciones realiza un depurador?

Puesto que ningún *software* está totalmente libre errores, la optimización diaria es una tarea imprescindible. El verdadero problema en este sentido no suele ser la identificación de **procesos erróneos** en la ejecución, sino la de su **causa** concreta. Basta un paréntesis mal colocado, por ejemplo, o un operador usado de forma incorrecta, pera que el programa deje de funcionar como debería. Sin embargo, cuando hay que lidiar con cientos o miles de líneas, con la búsqueda manual carácter a carácter no se obtienen muchos frutos. Los depuradores modernos, en cambio, no solo informan de que se ha encontrado un problema, sino que también dan **datos detallados acerca del tipo de error** y, a menudo, también indican **en qué línea de código** se encuentra.

Por lo general, los depuradores analizan el código del *software* **paso a paso**. Para ello, en el *software* se establecen los llamados *breakpoints* o **puntos de interrupción**. El depurador reconocerá estos puntos y los usará para detener la ejecución del *software* precisamente en dichos lugares. Los desarrolladores tienen entonces dos opciones:

- Pueden examinar **el estado del programa en ese momento en concreto**. De esta forma pueden comprobar fácilmente, por ejemplo, si todas las variables implicadas han dado como resultado los valores esperados.
- También pueden **ejecutar el programa a partir del punto de interrupción** para descartar posibles problemas o causas de error.

Los puntos de interrupción no tienen por qué ser fijos: muchos depuradores permiten **vincular los *breakpoints* a ciertas condiciones individuales**, lo cual permite detener el programa ante indicios concretos. Si, por ejemplo, una serie de procesos se ejecuta correctamente 20 veces pero muestra un fallo de programa en la repetición número 21, el *debugger* podrá **intervenir en el problema directamente** si se ha configurado la condición adecuada. Así, los ciclos que se han realizado sin dar resultados no han de volver a ejecutarse.

Otra de las funciones de los depuradores es el **análisis de datos** como, por ejemplo, el contenido de las variables, de las memorias o de los registros. Los *debuggers* también pueden **modificar las memorias** como, por ejemplo, la memoria principal (memoria interna) o el registro del procesador.

## ¿Cómo se utilizan los depuradores?

La manera de implementar un depurador para identificar errores de *software* dependerá, por un lado, del tipo de *debugger* en concreto y, por otro, del sistema operativo en el que se ejecute el *software* analizado (y el depurador). Como usuario, se ha de comunicar a la herramienta sobre qué proceso ha de actuar: ya sea en forma de identificador o ID de proceso; o usando un nombre, en cuyo caso el depurador habrá de averiguar, en primer lugar, el ID correspondiente. A continuación, se inicia la sesión de depuración **mediante una llamada al sistema**.

Por lo general, la implementación de herramientas de depuración puede tomar dos enfoques diferentes:

- El proceso de detección de errores ocurre **dentro del sistema** en el que se ejecuta el *software* analizado.
- El proceso de detección de errores no se inicia en el mismo ordenador en el que se ejecuta el *software* analizado, sino en un sistema separado: este método se denomina ***depuración remota*** o *remote debugging*.

Los depuradores modernos, por lo general, son capaces de integrar en su búsqueda de errores cambios en el código fuente del *software* mientras este se ejecuta. Este proceso de **depuración *just in time*** resulta especialmente útil en las fases tempranas del desarrollo de *software*, en las que es común que haya errores de cualquier envergadura en el código. No en vano, los **entornos de desarrollo** de diferentes [lenguajes de programación](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/que-son-los-lenguajes-de-scripting/ "¿Qué son los lenguajes de scripting?") y de [frameworks](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/panoramica-sobre-frameworks-web/ "Panorámica sobre frameworks web") disponen también de un depurador integrado.

## Depuradores: ¿dónde se usan?

La utilidad de los depuradores y de la depuración en general es muy amplia. Siempre que un programa informático haya de funcionar a largo plazo y evitar errores en la medida de lo posible, no se puede prescindir de estas prácticas herramientas de análisis: ya se trate de programar, desarrollar o poner a prueba un **código** sencillo, un **proceso aislado**, un **módulo**, un **programa** complejo o todo un **sistema operativo**.

**Tampoco es necesario ser programador** para aprovechar los beneficios de aplicar el *debugger* adecuado a un programa informático. Si se diseña y se configura de forma adecuada, un depurador puede, por ejemplo, funcionar como canal de comunicación entre los usuarios del programa y los desarrolladores en caso de que se produzcan fallos de funcionamiento. Gracias a **los informes del depurador**, los desarrolladores pueden **comprender más fácilmente** cuál es el problema y cómo el usuario podría solucionarlo en el *software*. Según el programa concreto, el depurador y la gravedad del problema, una herramienta de depuración integrada podría incluso hacer posible que los usuarios **reparasen los errores por sí mismos**.


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/depurador/](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/depurador/) for AI/LLM consumption.