A maioria dos aplicativos e bibliotecas é, por padrão, compilada com
símbolos de depuração inclusos (com a opção -g
do gcc). Isso significa que quando
depurar um aplicativo ou biblioteca que foi compilado com informação
de depuração, o depurador consegue fornecer não apenas endereços de
memória, mas também os nomes das rotinas e variáveis.
A inclusão desses símbolos de depuração alarga um aplicativo ou biblioteca significativamente. Aqui estão dois exemplos da quantidade de espaço que esses símbolos ocupam:
Um binário bash com símbolos de depuração: 1200 KB
Um binário bash sem símbolos de depuração: 480 KB (60% menor)
Arquivos da Glibc e do GCC (/lib
e /usr/lib
) com símbolos de
depuração: 87 MB
Arquivos da Glibc e do GCC sem símbolos de depuração: 16 MB (82% menor)
Os tamanhos variarão dependendo de qual compilador e biblioteca C foi usado, porém um aplicativo que tenha sido despojado dos símbolos de depuração usualmente é algo como 50% a 80% menor que o homônimo não despojado dele. Como a maioria dos(as) usuários(as) nunca usará um depurador no software do sistema deles(as), um monte de espaço em disco pode ser recuperado removendo-se esses símbolos. A próxima seção mostra como despojar todos os símbolos de depuração dos aplicativos e bibliotecas.