2015-11-08 184 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