Есть ли программный способ проверить повреждение стека

Я работаю с многопоточным встроенным приложением. Каждому потоку выделяются размеры стеков в зависимости от его функциональности. Недавно мы обнаружили, что один из потоков повредил стек, определив массив локальных переменных, размер которого превышал размер стека. ОС является uItron.

Мое решение, я зарегистрировал таймер на 10 мс, и этот таймер проверит на повреждение стека.

Метод проверки повреждения стека, 1. Инициализируйте стековую память с каким-то уникальным шаблоном (я использую 0x5A5A5A5A) 2. Проверьте по времени, является ли вершина стековой памяти 0x5A5A5A5A

Мой вопрос,

Есть ли лучший способ проверить этот тип коррупции

Забыл добавить, добавив сейчас: ОС: Itron, Процессор: ARM9. Компилятор: не GCC (специфичный для ARM9, поставляемый поставщиком процессора) ... И нет встроенной поддержки проверки стека ...

Ответы на вопрос(8)

Ваш ответ на вопрос