Есть ли программный способ проверить повреждение стека
Я работаю с многопоточным встроенным приложением. Каждому потоку выделяются размеры стеков в зависимости от его функциональности. Недавно мы обнаружили, что один из потоков повредил стек, определив массив локальных переменных, размер которого превышал размер стека. ОС является uItron.
Мое решение, я зарегистрировал таймер на 10 мс, и этот таймер проверит на повреждение стека.
Метод проверки повреждения стека, 1. Инициализируйте стековую память с каким-то уникальным шаблоном (я использую 0x5A5A5A5A) 2. Проверьте по времени, является ли вершина стековой памяти 0x5A5A5A5A
Мой вопрос,
Есть ли лучший способ проверить этот тип коррупции
Забыл добавить, добавив сейчас: ОС: Itron, Процессор: ARM9. Компилятор: не GCC (специфичный для ARM9, поставляемый поставщиком процессора) ... И нет встроенной поддержки проверки стека ...