Siguiente: , Subir: Instalación de archivos de depuración   [Índice general][Índice]


12.1 Información separada para depuración

The problem with debugging information is that is takes up a fair amount of disk space. For example, debugging information for the GNU C Library weighs in at more than 60 MiB. Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option. Yet, space savings should not come at the cost of an impediment to debugging—especially in the GNU system, which should make it easier for users to exert their computing freedom (véase Distribución GNU).

Afortunadamente, las utilidades binarias GNU (Binutils) y GDB proporcionan un mecanismo que permite a las usuarias obtener lo mejor de ambos mundos: la información de depuración puede extraerse de los binarios y almacenarse en archivos separados. GDB es capaz entonces de cargar la información de depuración desde esos archivos, cuando estén disponibles (véase Separate Debug Files en Debugging with GDB).

La distribución GNU toma ventaja de este hecho almacenando la información de depuración en el subdirectorio lib/debug de una salida separada del paquete llamada debug (véase Paquetes con múltiples salidas). Las usuarias pueden elegir si instalan la salida debug de un paquete cuando la necesitan. Por ejemplo, la siguiente orden instala la información de depuración para la biblioteca C de GNU y para GNU Guile.

guix install glibc:debug guile:debug

Se debe decir entonces a GDB que busque los archivos de depuración en el perfil de la usuaria, proporcionando un valor a la variable debug-file-directory (considere hacerlo en el archivo ~/.gdbinit, véase Startup en Debugging with GDB):

(gdb) set debug-file-directory ~/.guix-profile/lib/debug

A partir de ese momento GDB obtendrá la información de depuración de los archivos .debug dentro de la carpeta ~/.guix-profile/lib/debug.

Además, probablemente desee que GDB sea capaz de mostrar el código fuente que está depurando. Para hacerlo, tiene que desempaquetar el código fuente del paquete de su interés (obtenido con guix build --source, véase Invocación de guix build) e indicar a GDB cual es el directorio de fuentes mediante el uso de la orden directory (véase directory en Debugging with GDB).

El mecanismo de la salida debug en Guix se implementa por el sistema de construcción gnu-build-system (véase Sistemas de construcción). Ahora mismo necesita una activación explícita—la información de depuración está disponible únicamente para paquetes con definiciones que declaren explícitamente una salida debug. Para comprobar si un paquete tiene una salida debug, use guix package --list-available (véase Invocación de guix package).

Siga leyendo para ver cómo tratar con paquetes que carezcan de la salida debug.


Siguiente: , Subir: Instalación de archivos de depuración   [Índice general][Índice]