<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)¶スタック上に残っている空きバイト数を返します。これは頻繁に呼び出せるように高速である必要があります。