簡體   English   中英

C ++完全系統崩潰,僅限發布模式

[英]C++ full system crash, release mode only

我已經為光線跟蹤應用程序實現了一個專門的樹數據結構。 我在每個樹的節點中使用std :: list來存儲數據項。 我有一個問題,運行應用程序,使用這個數據結構,不僅崩潰應用程序,而且凍結整個操作系統(Windows 7)。 這僅在發布模式下發生; 在調試模式下,它需要更長的時間(如預期的那樣),但工作正常。 我正在使用Visual Studio 2010.在發布模式下運行(Ctrl + F5)或調試(F5)都會導致整個系統崩潰。

從我到目前為止發現的情況來看,釋放和調試模式之間的不同行為似乎歸因於內存泄漏,因為調試模式(從我所理解的)更寬容一些。 但是我沒有發現崩潰操作系統的C ++應用程序。

我只想知道在什么情況下會發生這種行為,所以我知道在哪里看。 將問題簡化為簡單並追蹤問題是很困難的,因為光線跟蹤的本質是高度並行並且可以處理大量數據。

哦,問題不是無限遞歸導致堆棧溢出。 我故意這樣做,並沒有讓操作系統崩潰。

你在調試模式下檢查了內存使用情況嗎? 過多的內存使用和溢出交換會降低系統速度,就像地獄一樣 - 你的系統可能沒有技術上的崩潰 - 只是變得超級慢。 在發布模式下,所有分配都將以相當快的速度發生 - 因此您可能需要查看內存使用情況。

正如你所說,無限遞歸不會導致操作系統崩潰 - 它總是會導致分段錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM