2011-10-09 112 views
0

我寫了一個具有下載文件功能的MFC應用程序。MFC應用程序崩潰 - 釋放vs調試

但我遇到了一個崩潰的應用程序的問題。 在Windows 7中沒有問題。而且在調試模式下它工作正常。

在Windows XP中,在發佈模式下,應用程序有時會崩潰。 我不知道有什麼問題,並希望得到您的幫助。

問候。

+1

這是waaay太少的信息。如果您無法調試發行版本,至少要創建崩潰轉儲,並查看實際發生崩潰的位置。 – eran

回答

0

您應該首先比較ReleaseDebug的配置。
沒有簡單的證據可以說明它爲什麼會發生崩潰,但是如果它在Debug中起作用,它不應該在Release中崩潰。

我的第一印象是兩種配置的代碼不同。
例如,定義爲#ifdef的預處理器必須編譯ios不存在於其他配置中的代碼塊。
檢查這一點,和比較你的兩個配置細節,這將有所幫助!

2

在調試版本中,變量默認初始化爲一些值,在釋放時它們可以是任何東西。另外一些佈局可能會改變。

嘗試運行應用程序驗證程序,它可以捕獲99%的重寫其他內容的錯誤。

+0

優秀的答案,並且很可能100%正確。幾乎所有我調試過的debug和release崩潰都是未初始化的變量。我發現了一個很好的應用程序,用於捕捉這樣的東西是CppCheck。當然,Purify可能仍然是最好的,但我目前沒有它的副本,所以調試堆棧廢棄問題可能會有一些挑戰,但是,瞭解x86集合總是有幫助的。 (或者amd64程序集,無論情況如何)。 – LarryF