我的應用程序使用GLUTesselator來鑲嵌複雜的凹多邊形。它在我運行普通版本的exe時會隨機崩潰,但如果我在VS中開始調試,它永遠不會崩潰。我發現這裏這個權利這基本上是我的問題:爲什麼某些事情永遠不會崩潰調試器?
The multi-thread debug CRT (/MTd) masks the problem, because, like
Windows並通過 調試器產生的進程,它提供給你的 程序的調試堆,這是 初始化爲0XCD模式。 可能在某處使用 未初始化的內存區域作爲指針從 堆中取消引用 它;與這兩個調試堆你 離開它由於某種原因(也許 因爲地址0xbaadf00d和 0xcdcdcdcd還有的有效分配 內存),但與「正常」堆 (也就是常初始化爲0)你 得到一個訪問衝突,因爲你取消引用一個空指針 。
問題是在GLU32.dll發生崩潰,我無法找出爲什麼它有時試圖解引用空指針。當我的多邊形變得相當大並且有很多點時,它似乎會這樣做。我能做什麼?
謝謝
調試器速度較慢,因此在多線程環境中,可能得不到相同的結果。 – 2010-08-02 00:32:49
步驟1:儘可能提高警告等級。第2步:將所有警告視爲錯誤。第3步使代碼編譯。在修復所有遇到的問題時,只需將警告級別提高即可發現代碼中的錯誤。 – 2010-08-02 03:17:30