Stabs
1. 개요
Stabs는 1980년대에 개발된 디버깅 정보 인코딩 방식이다. 당시 지배적인 오브젝트 파일 형식인 a.out이 디버깅 정보를 저장하지 못하는 문제를 해결하기 위해 심볼 테이블에 특수 항목을 사용하여 정보를 인코딩했다. 유닉스 시스템에서 널리 사용되었으나, DWARF 포맷으로 대체되었다.
Stabs
설명
| 종류 | 디버깅 데이터 포맷 |
|---|---|
| 개발자 | 피터 케슬러 마크 린턴 |
| 발표일 | 1993년 |
| 특징 | 심볼 테이블 정보를 포함 다양한 프로그래밍 언어 지원 디버거와의 호환성 |
기술 정보
| 개요 | stabs는 심볼 테이블 정보를 실행 파일에 포함시키는 디버깅 포맷이다. |
|---|---|
| 목적 | 소스 코드 레벨에서 디버깅을 가능하게 한다. |
| 지원 언어 | C 언어 C++ 포트란 파스칼 |
| 사용 | GDB와 같은 디버거에서 사용된다. |
| 대안 | DWARF가 stabs의 대안으로 등장했다. |
| 역사 | dbx 디버거의 진화 과정에서 개발되었다. |
📚 더 읽어볼만한 페이지
-
디버깅 자료 형식 -
DWARF
DWARF는 디버깅 정보를 저장하는 파일 형식으로, DIE라는 자료 구조를 사용하여 변수, 타입, 프로시저 등을 트리 구조로 나타내며, 데이터 압축, C++ 지원 등의 기능이 추가되었다.
2. 역사
Stabs는 1980년대에 개발되었는데, 당시 주도적인 목적 파일 형식은 a.out이었다. a.out은 ELF 같은 최신 형식들과는 달리 디버깅 정보를 저장하는 기능이 없었다. Stabs는 심볼 테이블에서 특별한 엔트리를 사용해 정보를 인코딩함으로써 이 문제를 해결하였다.
Stabs는 한때 유닉스 시스템에서 널리 사용되었지만, 새로운 DWARF 포맷이 이것을 대체하였다.
2.1. 개발 배경
1980년대에 stabs가 만들어졌을 당시 주도적인 오브젝트 파일 형식은 a.out이었는데, 이는 ELF 같은 최신 형식들과는 달리 디버깅 정보를 저장하는 기능이 없었다. Stabs는 심볼 테이블에서 특별한 엔트리를 사용해서 정보를 인코딩함으로써 이 문제를 해결하였다.
2.2. 작동 방식
1980년대에 stabs가 만들어졌을 때, 지배적인 오브젝트 파일 형식은 a.out이었는데, 이는 ELF와 같은 최신 형식과는 달리 디버깅 정보를 저장할 수 있는 기능을 제공하지 않았다. Stabs는 심볼 테이블에 특수 항목을 사용하여 정보를 인코딩함으로써 이 문제를 해결했다.