stack.h

<emscripten/stack.h> 中定義的函式允許檢查有關 WebAssembly 資料堆疊(有時稱為「使用者堆疊」或「C 堆疊」)的資訊。 此資料堆疊是線性記憶體中包含的資料(相對於由 VM 管理的受信任呼叫堆疊,並且該堆疊對正在執行的程式不可見)。

uintptr_t emscripten_stack_get_base(void)

傳回堆疊的起始位址。 這是當堆疊上沒有使用任何位元組時,堆疊指標將指向的位址。

uintptr_t emscripten_stack_get_end(void)

傳回堆疊的結束位址。 這是當整個堆疊都在使用時,堆疊指標將指向的位址。(結束位址指向的位址本身不是堆疊的一部分)。 請注意,堆疊向下增長,因此 emscripten_stack_get_end() 傳回的位址小於 emscripten_stack_get_base()

void emscripten_stack_set_limits(void* base, void* end)

設定 emscripten_stack_get_base()emscripten_stack_get_end() 報告的內部值。 這應該僅由 asyncify 光纖等底層程式庫使用。

uintptr_t emscripten_stack_get_current(void)

傳回目前的堆疊指標。

size_t emscripten_stack_get_free(void)

傳回堆疊上剩餘的可用位元組數。 為了能夠頻繁呼叫,必須快速執行。