С компьютерами логика не всегда работает. Может так получиться, что из-за ошибки (или сбоя)
процссор вообще будет выполнять случайные участки
памяти в случайный момент.
В указанном участке программы ошибок
может и нет. Всё корректно. А стек рушится
по другим причинам и это можно искать
до потери пульса.
---
Можно рекомендовать начать резко упрощать
проект отбрасывая от программы большие куски.
(Общий алгоритм ловли льва в африке.)
Постепенно достигая ситуации "только этот участок
остался, больше ничего". Практически, так быстрее
и дешевле получится.