У меня есть совершенно непонятная проблема с программой на C++, которую я компилирую с помощью MinGW. В определенной, детерминированной точке в программе некоторые обработчики исключений отключены, и любые последующие исключения, которые были выбраны, больше не обрабатываются. Я могу отслеживать точную строку источника, которая делает это, это безобидное назначение массиву в куче. Указатель не поврежден, и я не пишу за его пределы. Более того, один и тот же код вызывается в кучу разных обстоятельств, даже с большинством тех же аргументов, не вызывая ошибки. Если я играю с кодом, чтобы значение, которое он пишет, всегда равно нулю, ошибка никогда не срабатывает. Я не понимаю, что происходит. Он также отключает только обработчики исключений. обработчики исключений, расположенные дальше по стоп-столу, отключены, а те, которые выше, остаются активными. Это озадачивает.Как отлаживать обработку исключений MinGW?
Итак, как мне следует отлаживать это? Я действительно не понимаю, как исключения действительно работают в версии GCC от MinGW. Что может произойти, чтобы вызвать этот странный набор симптомов?