1
我用MinGW編譯的C++程序有一個完全令人困惑的問題。在程序中的某個確定性點處,一些異常處理程序被禁用,並且不再處理將來引發的任何異常。我可以追蹤確切的源代碼行,這是對堆中數組的無害分配。指針沒有損壞,我也沒有超出其範圍。更重要的是,在很多不同的情況下調用相同的代碼,即使大部分相同的參數都沒有觸發錯誤。如果我撥弄代碼以使其值始終爲零,則不會觸發該錯誤。我不知道發生了什麼。它也只能禁用一些異常處理程序。異常處理程序進一步下來的調用堆棧被禁用,而較高的異常處理程序保持活動狀態。真是莫名其妙。如何調試MinGW異常處理?
那麼,我該如何去調試呢?在MinGW的GCC版本中,我真的無法很好地理解異常情況。發生這種奇怪的一系列症狀會發生什麼?