기본적으로
대부분의
프로그램과
라이브러리들은
디버깅 심볼이
포함되어(gcc의 -g
옵션과
함께) 컴파일된다.
이는 디버깅 정보가
포함된
프로그램이나
라이브러리를
디버깅할 때,
디버거가 메모리
주소뿐만 아니라
루틴과 변수의
이름들까지도
제공할 수 있다는
뜻이다.
그러나, 이런 디버깅 심볼을 포함하면 프로그램이나 라이브러리가 상당히 커지게 된다. 다음은 이러한 심볼들이 차지하는 공간에 대한 예시이다:
디버깅 심볼을 포함한 bash 바이너리: 1200 KB
디버깅 심볼을 제외한 bash 바이너리: 480 KB
디버깅 심볼을
포함한 Glibc와 GCC
파일들(/lib
및 /usr/lib
): 87 MB
디버깅 심볼을 제외한 Glibc와 GCC 파일들: 16 MB
어떤 컴파일러와 C 라이브러리를 사용했느냐에 따라 크기가 달라질 수 있지만, 디버깅 심볼이 있는 프로그램과 없는 프로그램을 비교할 때는 보통 2 ~ 5배가량 차이가 난다.
대부분의 사용자들은 그들의 시스템 소프트웨어에서 디버거를 사용할 일이 전혀 없을 것이기 때문에, 이러한 심볼을 제거함으로써 많은 디스크 공간을 되찾을 수 있다. 다음 절에서는 프로그램과 라이브러리에서 모든 디버깅 심볼을 제거하는 방법을 설명한다.