alloca가 스택 메모리를 할당하는 방법: __chkstk 프로브의 비밀

How do functions like alloca allocate memory from the stack?

Raymond Chen이 alloca와 같은 함수가 스택에서 메모리를 할당할 때 가드 페이지를 건너뛰지 않도록 하는 방법을 설명합니다. x86-64 어셈블리 예제를 통해 _alloca()가 __chkstk()를 호출하여 스택을 프로브한 후 스택 포인터를 조정한다는 것을 보여줍니다. 이는 로컬 프레임 생성 시 사용되는 것과 동일한 __chkstk 함수입니다.

관찰할 수 있듯이, 동일한 __chkstk 함수가 로컬 프레임을 생성할 때 초기 스택 프로브를 수행하는 데 사용되고 alloca()에도 사용됩니다.

이 날의 다른 글

2026-08-28