2016-10-24 7 views
0

나는 리눅스 밑에서 일하고있다. "-g"와 "-ggdb"의 효과는별로 다르지 않다. 나는 "-ggdb"를 사용하여 더 큰 바이너리를 생성 할 수 밖에 없다.gcc : "-g"와 "-ggdb"의 차이점은 무엇입니까?

그래서 gdb의 "-g"옵션과 "-ggdb"옵션의 핵심적인 차이점은 무엇입니까?

감사합니다.

답변

2

컴파일 된 프로그램은 디버거 (여기 GDB)가 살펴보고 따라갈 수있는 위치에 저장해야합니다.

기술적으로는 "디버깅 데이터 형식"이라고합니다.

일부 universaslly 받아 디버깅 데이터 형식은 (좀 더있다) :

COFF - 공통 개체 파일 형식 - UNIX에서 시스템과 같은.

PE/COFF - Portable Executable - 꽤 유명한 Windows에서 일반적으로 dotnet을 사용합니다.

DWARF - 유닉스 계열 시스템에서 널리 사용됩니다. 당신이 당신의 질문에 질문

GDB 옵션은 이러한 디버깅 데이터 형식을 생성 관련이 있습니다.

문서를 기반으로 한 funcdamental 차이점은 다음과 같습니다. 옵션 "g"는 특정 시스템의 기본 형식으로 디버깅 데이터를 제공합니다. 옵션 "-ggdb"는 조금 풍부하고 값 비쌉니다. 사용 가능한 대부분의 표현 형식으로 디버깅 데이터를 제공합니다.