저는 어셈블리 언어의 초보자이며 컴파일러가 내 보낸 x86 코드가 일반적으로 EBP
레지스터를 다른 용도로 사용할 수있을 때 릴리스 / 최적화 모드에서도 프레임 포인터를 유지한다는 것을 알았 습니다.
프레임 포인터가 코드를 디버그하기 쉽게 만드는 이유를 이해 alloca()
하고 함수 내에서 호출되는 경우 필요할 수 있습니다 . 그러나 x86에는 레지스터가 매우 적으며 그중 하나가 충분할 때 스택 프레임의 위치를 유지하기 위해 두 개를 사용하는 것은 나에게 의미가 없습니다. 최적화 / 릴리스 빌드에서도 프레임 포인터를 생략하는 것이 나쁜 생각으로 간주되는 이유는 무엇입니까?
alloca
) 3. 런타임 구현 용이성 : 예외 처리, 샌드 박스, GC