Znacznik maksymalnego użycia stosu
Najmniejsza ilość wolnego stosu, jaką zadanie kiedykolwiek miało — mierzona przez „pomalowanie” stosu i sprawdzenie, jak daleko farba została zdrapana.
W RTOS-ie każde zadanie dostaje własny stos o stałym rozmiarze, a zbyt mały stos powoduje awarie nie do odróżnienia od losowego uszkodzenia pamięci. Technika jest prosta: przy tworzeniu stos wypełnia się znanym wzorcem (FreeRTOS używa 0xA5), a później liczy się, ile bajtów od dołu nadal go zawiera. Funkcja uxTaskGetStackHighWaterMark() zwraca właśnie tę liczbę.
Znacznik odzwierciedla tylko ścieżki kodu, które faktycznie się wykonały. Najgorsze przerwanie w najgłębszym łańcuchu wywołań mogło się w testach nigdy nie zdarzyć, więc dodaje się zapas albo wspiera analizą statyczną, np. -fstack-usage w GCC. Obszar ochronny MPU wyłapuje przepełnienie, zamiast pozwolić mu podeptać cudze dane — i daje HardFault, który przynajmniej da się zdebugować.