2009-08-27 3 views
7

-fno-omit-frame-pointer가 최적화없이 무엇을 할 것인지 궁금합니다.- 최적화하지 않고 -fno-omit-frame-pointer

CXXFLAGS = -Wall -ggdb3 -DDEBUG -fno-생략 프레임 포인터

는 그 fomit 프레임 포인터 자동 -O의 모든 수준에서 설정되지 않은 (제외 - O0)? 내 예제에서는 기본적으로 -O0이라고 가정합니다.

감사합니다.

+0

x86 및 제품군에서'-fomit-frame-pointer'는 디버깅을 방해 할 수 있으므로 더 높은 최적화 수준에서는 기본적으로 ** 사용되지 않습니다 **. –

+2

x86-64 및 arm과 같은 아키텍처에서는 기본적으로 생성 된 프레임 포인터가 없으므로 (ABI에서 지정됨)이 옵션을 사용하면 컴파일러에서 프레임 포인터 레지스터를 생성합니다. –

답변

6

여러분이 이미 암시 한 것처럼 프레임 포인터가 기본값 -O0으로 생략되지 않으므로 -fno-omit-frame-pointer은 무시됩니다.

2

제가 알기로, Ox은 최적화 플래그 집합에 대한 바로 가기입니다. 기본 최적화는 0이므로 Ox없이 하나의 플래그를 사용하면 최적화 만 수행하면됩니다.

내 의견으로는, 프레임 포인터를 생략하면 디버깅이 어려워 성능이 약간 향상됩니다.

+0

* "제 견해로, 프레임 포인터를 생략하면 ..."- 스택 추적을 거의 쓸모 없게 만듭니다. 'bt full'은 절름발이가 될 것입니다. – jww

관련 문제