在 <emscripten/stack.h> 中定义的函数允许检查有关 WebAssembly 数据堆栈(有时称为“用户堆栈”或“C 堆栈”)的信息。此数据堆栈是线性内存中包含的数据(与 VM 管理的受信任调用堆栈相反,并且对正在运行的程序不可见)。
emscripten_stack_get_base
(void)¶返回堆栈的起始地址。当堆栈上没有使用字节时,这是堆栈指针将指向的地址。
emscripten_stack_get_end
(void)¶返回堆栈的结束地址。这是堆栈指针将指向的地址,当整个堆栈都使用时。(结束地址指向的地址不是堆栈本身的一部分)。注意,堆栈向下增长,因此 emscripten_stack_get_end() 返回的地址小于 emscripten_stack_get_base()
。
emscripten_stack_set_limits
(void* base, void* end)¶设置 emscripten_stack_get_base()
和 emscripten_stack_get_end()
报告的内部值。这应该只被低级库使用,例如 asyncify 纤维。
emscripten_stack_get_current
(void)¶返回当前堆栈指针。
emscripten_stack_get_free
(void)¶返回堆栈上剩余的可用字节数。这要求速度快,以便可以频繁调用它。