Sobre los símbolos de depuración

Muchos programas y librerías son compilados por defecto con símbolos de depuración (opción -g de gcc).

Un programa compilado con símbolos de depuración permite al usuario lanzar un programa o librería a través de un depurador y la salida del depurador será amigable. Estos símbolos de depuración también agrandan el programa o librería de forma significativa.

Antes de que comiences a preguntarte si estos símbolos de depuración realmente producen una gran diferencia, aquí tienes algunas estadísticas. Úsalas para sacar tu propia conclusión.

Los tamaños varían dependiendo de qué compilador fue usado y qué versión de la librería C se usó para enlazar dinámicamente los programas, pero los resultados son similares si comparas los programas con y sin símbolos de depuración.

Para eliminar los símbolos de depuración de un binario (debe ser un binario a.out o ELF) ejecuta strip --strip-debug fichero. Pueden usarse comodines para eliminar los símbolos de depuración de múltiples ficheros (puede usarse algo como esto: strip --strip-debug $LFS/usr/bin/*). Mucha gente probablemente nunca use un depurador, por lo que eliminando estos símbolos se puede liberar una buena cantidad de espacio del disco.

Para tu comodidad, en el capítulo 9 se incluye un comando simple para eliminar todos los símbolos de depuración de todos los programas y librerías del sistema.

Puedes encontrar información adicional en la receta de optimización que hay en http://hints.linuxfromscratch.org/hints/optimization.txt .