1. Проработайте код аналитически, тк выход за границы массива "чем-то" - грубая ошибка, скорее всего программера а не компилятора или OS.
2. Используйте "на полную" возможности отладчика, например IAR. Настройте BP на стоп по изменению памяти (write).
Ставите такй BP на ячейку (адрес) за пределами массива и .... ждете

3. Ну, можно "наложить" в памяти 2 массива. (&WorkArry[0] == &DbgArry[0])
Один - большой, отладочный, который перекрывает по размеру "проблемный".
Заполняете отладочный массив паттерном, напр. 0x55.
Второй массив - Ваш "проблемный". После сбоя смотрим паттерны в отладочном массиве выше последней ячейки "проблемного".
ps/ п.3.
При остановке в этой BP, через StackCall будет видно, кто там "порылся".