Wie alloca Speicher vom Stack holt: Raymond Chen erklärt den __chkstk-Aufruf
How do functions like alloca allocate memory from the stack?
In seinem Blog The Old New Thing erklärt Raymond Chen, wie Funktionen wie alloca Speicher vom Stack allozieren. Er zeigt anhand eines konkreten x86-64-Assembly-Beispiels, dass _alloca() dieselbe __chkstk()-Funktion aufruft, die auch für die anfängliche Stack-Probe des lokalen Frames verwendet wird. Damit wird sichergestellt, dass große Stack-Allokationen die Guard-Page nicht überspringen.
Ja, die _alloca()-Funktion ruft dieselbe __chkstk()-Funktion auf, um den Stack zu prüfen, bevor sie den Stack-Pointer für den allokierten Speicher anpasst.