2009-08-15 1 views
2

필자는 항상이 기능을 컴파일러에서 켭니다. 더 깨끗한 어셈블리 코드를 읽는 동안 디버깅에 많은 도움이됩니다. 나는 그것이 속도 최적화 측면에 커다란 영향을 미치지 만, CPU 능력을 파이프 라이닝 할 수는 있지만, 적어도 새로운 레지스터 EBP를 얻는 등 레지스터 할당을위한 새로운 기회를 열어 주었다. (컴파일러가 그것을 사용할 지 모르겠다.)프레임 포인터 생략 하시겠습니까? 어떤 위험?

내 질문은 :이 접근법은 더 이상 안전한가요? 혹시 어떤 특이점을 불러 일으켰습니까?

답변

2

소프트웨어가 충돌 할 때 스택 추적을 생성하는 경우 프레임 포인터를 생략하면 작동하지 않을 수 있습니다.

0

GCC에서 -fomit-frame-pointer를 사용할 때 어떤 문제도 발생하지 않았습니다. 그러나 실제로 디버깅은 더욱 어려워집니다.

0

Gentoo wikifomit-frame-pointer은 디버깅을 금지 할 수 있습니다. 그렇지 않으면 실제적인 위험도가 있다고 생각하지 않습니다..

+0

그것은 "바이너리 크기가 약간 증가 할 수 있지만 x86과 다른 아치에서 디버깅을 중단합니다 ..."나는 이것이 --finline-functions과 같은 문제라고 생각합니다. – ZeroCool