Röd zon (dator)

Vid beräkning är den röda zonen ett område med fast storlek i en funktions stackram under (för en nedtryckt stack) den aktuella stackpekaren som är reserverad och säker att använda. Det används oftast i bladfunktioner (funktioner som inte anropar andra funktioner) för att allokera ytterligare stackminne, utan att flytta stackpekaren, vilket sparar en instruktion.

Huruvida en röd zon finns beror på anropskonventionen . x86-64- system som använder System V AMD64 ABI (inklusive Linux och macOS ) använder en 128-byte röd zon som börjar direkt under stackpekarens aktuella värde. OpenRISC - verktygskedjan antar en röd zon på 128 byte. Microsoft Windows har inte konceptet med en röd zon på x86 . Faktum är att ABI uttryckligen anger att minnet bortom stackpekaren är flyktigt och kan skrivas över av debuggers eller avbrottshanterare. Microsoft Windows har dock en röd zon på 16 byte på IA-64 , 8 byte på AArch32 och 16 byte på AArch64 .

Den röda zonen är säker från modifiering av avbrott / undantag / signalhanterare .

Anteckningar och referenser