IT用語集 › プログラミング › スタックハイウォーターマーク

スタックハイウォーターマーク

プログラミング Svenska → 更新: 2026-11-03

タスクのスタック空き容量がこれまでに最も減った地点。スタックに「塗料」を塗っておき、どこまで剥がれたかで測る。

RTOSでは各タスクが固定サイズの専用スタックを持ち、小さすぎると、ランダムなメモリ破壊と見分けのつかない不具合が起きる。手法は単純で、作成時にスタックを既知のパターン(FreeRTOSでは0xA5)で埋めておき、後で底からそのパターンが残っているバイト数を数える。uxTaskGetStackHighWaterMark()が返すのがまさにその数だ。

この値が反映するのは実際に通ったコードパスだけである。最も深い呼び出しの最中に最悪の割り込みが入る状況は、試験では一度も起きていないかもしれない。そのため余裕を持たせるか、GCCの-fstack-usageのような静的解析で裏付ける。MPUのガード領域を置けば、オーバーフローが隣のデータを踏み荒らす代わりに検出され、少なくともデバッグ可能なHardFaultになる。

← 用語集に戻る