6.79. 디버깅 심볼에 관하여

기본적으로 대부분의 프로그램과 라이브러리들은 디버깅 심볼이 포함되어(gcc-g 옵션과 함께) 컴파일된다. 이는 디버깅 정보가 포함된 프로그램이나 라이브러리를 디버깅할 때, 디버거가 메모리 주소뿐만 아니라 루틴과 변수의 이름들까지도 제공할 수 있다는 뜻이다.

그러나, 이런 디버깅 심볼을 포함하면 프로그램이나 라이브러리가 상당히 커지게 된다. 다음은 이러한 심볼들이 차지하는 공간에 대한 예시이다:

어떤 컴파일러와 C 라이브러리를 사용했느냐에 따라 크기가 달라질 수 있지만, 디버깅 심볼이 있는 프로그램과 없는 프로그램을 비교할 때는 보통 2 ~ 5배가량 차이가 난다.

대부분의 사용자들은 그들의 시스템 소프트웨어에서 디버거를 사용할 일이 전혀 없을 것이기 때문에, 이러한 심볼을 제거함으로써 많은 디스크 공간을 되찾을 수 있다. 다음 절에서는 프로그램과 라이브러리에서 모든 디버깅 심볼을 제거하는 방법을 설명한다.