2011-05-26 28 views
0

好吧。這就是問題所在。只是。應用程序在編譯出錯後執行時關閉,但在調試時正常工作!

我有一個用SDL和OpenGL製作的應用程序。 SDL會在圖形之外打開一個額外的窗口(這是控制檯)。當我執行我得到3輸出錯誤,控制檯告訴我。它被關閉(圖形化)。

但我知道發生這種情況時收到一個SIGSEGV信號(不知道如何捕獲它),它出現在我的IDE(代碼::塊),同時調試。但是這次沒有出現,一切正常。但是,當執行崩潰..

什麼...

我可以期待什麼樣的錯誤?有時會關閉,有時不會。如何知道我得到了什麼樣的問題?

+2

您有一個未初始化的變量,它在調試期間獲取固定值,但在發佈版本中完全是隨機的。 – 2011-05-26 20:06:19

+0

如果編譯時出現錯誤,如何執行應用程序? – ildjarn 2011-05-26 20:07:18

+0

哎!是。可能是我有未初始化的變量!是! 。這是調試和執行之間的區別!對!!非常感謝 – darkgaze 2011-05-27 08:51:24

回答

1

SIGSEGV是一個段錯誤,您試圖訪問您的進程無法訪問的內存。

假設你在UNIXy系統上,你應該能夠將程序轉儲到核心轉儲,然後在調試器中查看核心轉儲;或者,使用像Valgrind這樣的內存調試器來查明導致此問題的內存管理問題。

相關問題