2015-11-08 233 views
-1

我在應用程序中遇到了奇怪的崩潰,這是由文件打開對話框引起的。文件打開對話框崩潰

的應用程序是用C++(Visual Studio中13最新補丁),並直接調用Win32 API和Windows 10

運行應用程序崩潰,我只是彈出文件打開對話框(其中打開d:驅動器),移至頂層文件夾輸入字段並鍵入C(計劃更改爲c:驅動器),並導致此未處理的異常錯誤。

Unhandled exception at 0x5BAA7527 (ieframe.dll) in app.exe: 0xC00000FD: 
Stack overflow (parameters: 0x00000000, 0x05132000). 

該未處理的異常然後殺死該應用程序。

如果我跑在釋放模式在調試器中相同的應用程序,我得到在調試器相同的異常:

Debugger Crash

調試器顯示自墜毀沒有調用堆棧實際上是內心深處的Windows(即在ieframe.dll中)。

但是,如果我點擊繼續,應用程序運行得很好,並將其顯示爲文件打開對話框中的工具提示。

File Open Dialog

另外,如果我現在重新打開該文件第二次,現在也沒有例外。

最後,如果我在調試模式下運行代碼,我根本沒有例外。

因此,它看起來像是因爲調試器發生異常,我的應用程序沒有崩潰,因爲在調試器外部運行未捕獲的異常會殺死應用程序。

此外,它看起來像發佈版本特定的某些選項可能導致崩潰,因爲調試版本沒有錯誤。

任何想法?

+0

正在*「深入Windows」*不會阻止顯示調用堆棧。您甚至可以通過使用[Microsoft公共符號服務器](https://msdn.microsoft.com/en-us/library/windows/hardware/ff552208.aspx)獲取符號信息。 – IInspectable

回答

-2

事實證明這是發佈版本設置的問題。特別是它與堆棧鏈接器設置有關。

+0

@ReazMurshed這個答案中沒有一個鏈接。請仔細閱讀。 – Undo