디버그 심볼(영어: debug symbol)은 주어진 실행 가능한 모듈에서 특정한 기계어에 의해 생성된 프로그래밍 언어 구조를 표현하는 정보이다. 가끔 심볼릭 정보는 모듈의 바이너리 파일 또는 나뉘어서 배포되는 파일과 함께 컴파일되거나 컴파일 또는 링킹 시에 버려진다. 이 정보는 심볼릭 디버거를 사용하는 사람이 변수나 원본 소스 코드에서의 루틴들의 이름 같은 바이너리에 관한 추가적인 정보를 얻게 한다. 이 정보는 충돌한 응용 프로그램을 조사하거나 고칠 때 큰 도움이 될 수 있다.[1]

디버그 심볼이 바이너리 자체에 삽입되면 파일은 상당히 커질 수 있다.[2] 이 추가적인 크기를 줄이기 위해, 현대의 컴파일러는 심볼릭 정보를 분리된 파일에 출력한다. 마이크로소프트에서 이 파일은 PDB라고 불린다. WinDBG 디버거는 윈도우 DLL들에 대한 심볼을 자동으로 다운로드하도록 설정될 수 있다. 

마이크로소프트나 모질라는 또한 디버깅을 쉽게 하기 위해 소스 코드를 제공한다(마이크로소프트의 경우는 닷넷 프레임워크 같은 특정한 요소만 제공한다).

애플은 애플 OS를 위한 "Symbolicate"(디버그 심볼 생성이라는 뜻)라는 용어를 사용한다.[3]

역사 편집

심볼릭 디버깅 정보를 보여주는 심볼릭 디버거들은 거의 메인프레임의 초기 도입 때부터 존재해 왔다. 이것들은 고수준으로 컴파일된 언어 뿐만 아니라 어셈블리어 프로그램에서도 사용 가능했다.

공용 심볼과 소스 서버들 편집

각주 편집