Bienvenidos sean a este post, hoy veremos un breve resumen sobre esto.
La depuracion (debugging) es el proceso de encontrar y resolver problemas o defectos de un programa. Esto puede incluir depuracion interactiva, analisis del flujo del control/datos, y el testing de unidad e integracion. Pero nosotros nos centraremos principalmente en la depuracion interactiva, lo cual es el proceso de ejecutar el codigo linea por linea con breakpoints, mientras se muestran los valores de las variables que se estan usando y sus correspondientes direcciones de memoria.
Para poder trabajar con la depuracion debemos usar una herramienta o programa. Si bien existen muchas disponibles, estas van a depender del entorno y la plataforma donde trabajan. A continuacion veamos algunos de los disponibles segun el sistema operativo.
Linux/Unix
- gdb: un depurador CLI de codigo abierto y muy popular.
- Eclipse: una IDE de codigo abierto pero que tambien soporta compilacion, profiling y edicion inteligente
- Valgrind: herramienta de analisis de codigo abierto, muy recomendada para depurar fugas de memoria y subprocesar errores
- Affinic: una GUI comercial para gdb, lldb, y el depurador llvm
- ddd: un display de depurador de codigo abierto para gdb, dbx, jdb, xdb y python
- gdb en modo emacs: una GUI de codigo abierto que emacs para ver y editar codigo fuente cuando depuramos con gdb
- KDevelop: una IDE de codigo abierto para programar que incluye un depurador
- Nemiver: una herramienta de codigo abierto que trabaja mejor en entornos gnome
- Slickedit: herramienta para depurar codigo multithreaded y multiprocesador
Windows
- Visual Studio: una IDE comercial con version gratuita pero el mas recomendado para el S.O
- gdb: puede usarse en Windows pero a traves de Cygwin o MinGW
- Eclipse: se puede instalar en este S.O pero mediante otras herramientas
macOS
- lldb: es el depurador predeterminado en Xcode, soporta C/C++ y Objetive-C en escritorios, dispositivos IOS y simuladores
- gdb: al igual que los anteriores tambien puede usar en macOS y sistemas IOS
- Eclipse: esta IDE gratuita se puede usar mediante GCC
Estos son algunos de los depuradores, GUI e IDE mas populares para cada S.O pero existen muchos mas con sus pros y contras con respecto a estos. Pero como mencionamos, el mas popular es gdb porque como mencionamos esta disponible en todos los sistemas operativos y se puede ejecutar con suma facilidad. Uno que mencione y esta disponible para otros S.O es Visual Studio para Linux pero este depende mucho de los compiladores y depuradores instalados porque solo actua como una IDE y algunas caracteristicas propias de este en su version de Windows.
gdb
Este es el GNU Debugger, la cual permite a un desarrollador para ver que sucede dentro de otro programa mientras se ejecuta, o que estaba sucediendo al momento de detenerse subitamente o como se lo denomina habitualmente, crashear. gdb nos permite esttas cuatro acciones principalmente:
- Iniciar un programa y poder especificar cualquier cosa que pueda afectar a su conducta
- Hacer que un programa se detenga con una condicion
- Examinar que sucedio cuando un programa se detuvo
- Cambiar los valores de las variables mientras corre un programa
Tengan en cuenta que dos programas o archivos ejecutables estan envueltos: uno es gdb mientras el otro sera el programa a depurar. A su vez, estos dos programas pueden correr en el mismo equipo o remotamente, esto hace que tengamos tres categorias:
- Depuracion nativa: ambos programas corren en el mismo equipo
- Depuracion remota: gdb corre en un equipo huesped, y el programa en un equipo remoto
- Depuracion simulador: gdb corre en un equipo huesped, y el programa en un simulador
Pasemos a ver como se instala en caso de no existir en el equipo local o host de los tipos anteriores. Para un linux Debian deben correr el siguiente comando:
$ sudo apt-get install gdb
Nota:
Por lo general, se deberia instalar cuando instalamos todo lo esencial para C++ pero en caso de no estarlo se instala el paquete anterior.
Este lo instalara en nuestro equipo y ya podemos acceder al mismo.. Para verificar si esta correctamente instalado pueden ejecutar el siguiente comando:
$ gdb --version
Este devolvera la version del gdb que tengamos instalado.. Veamos como es una salida valida:
$ gdb --version
GNU gdb (Debian 13.1-3) 13.1
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$
Nota:
La version del gdb puede variar con respecto a la de ustedes.
Con nuestro depurador instalado ya podremos empezar a usarlo. Si bien con el tiempo mejoro un monton y agrego muchas caracteristicas, en el proximo post veremos algunas de las mas basicas e importantes. Antes de finalizar, les comento que gdb soporta los lenguajes C, C++, Objetive-C, Ada, Assembly, D, Fortran, Go, OpenCL, Modula-2, Pascal y Rust.
En resumen, hoy hemos visto que es depurar, que es lo que realmente hace, en cual nos enfocaremos principalmente, y algunos de los depuradores disponibles y populares en cada sistema operativo, asi como un breve resumen de gdb, el mas popular de ellos, y como instalarlo. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
