我已爲光線跟蹤應用程序實現了專門的樹數據結構。我在每個樹的節點中使用std :: list來存儲數據項。我在運行應用程序時出現問題,使用此數據結構時,不僅會崩潰應用程序,還會凍結整個操作系統(Windows 7)。這僅在發佈模式下發生;在調試模式下需要更長的時間(如預期的那樣),但工作正常。我正在使用Visual Studio 2010.在發佈模式下運行(Ctrl + F5)或調試(F5)都會導致整個系統崩潰。C++完全系統崩潰,僅限發佈模式
從我迄今爲止發現的情況來看,釋放模式和調試模式之間的不同行爲似乎歸因於內存泄漏,因爲調試模式(從我所瞭解的內容來看)有點寬容。但是,我沒有發現任何關於C++應用程序崩潰的操作系統。
我只想知道在什麼情況下會發生這種行爲,所以我知道在哪裏看。將問題簡化爲簡單並追蹤問題是困難的,因爲它具有高度並行性和處理大量數據的光線追蹤性質。
哦,問題是不是一個無限遞歸導致堆棧溢出。我故意實現了這一點,並沒有使操作系統崩潰。
很大的功能從用戶空間代碼凍結Windows 7。你說這是大規模並行和大量的數據,可能是因爲你耗盡了資源,並且使整個系統瀕臨停滯。我有應用程序通過運行所有可用的RAM和交換來關閉Linux機器,成爲一個3分鐘的任務切換到終端,並嘗試殺死應用程序。 –
如果您的代碼是可移植的,請嘗試在更穩定的操作系統上進行編譯,並找出錯誤的原因。通過崩潰操作系統進行調試需要很長時間。 – thiton
如果您使用調試信息構建發行版本,它會正常工作嗎?否則,它可能會幫助您縮小發生碰撞事故的地點。 –