我刚刚向Microsoft提交了bug report,在我的系统上抛出了std::exception
的任何异常,或者那些继承它的人崩溃了Visual Studio 2013 IDE。有没有其他人看到这个问题,或者是我的系统上的怪癖启用了这个错误?我还可以提一下,我在同一系统上的Visual Studio 2012没有这样的问题。
以下极简主义示例导致我的Visual Studio 2013 IDE崩溃:
#include "stdafx.h"
#include <stdexcept>
#include <iostream>
int _tmain(int argc, _TCHAR* argv [])
{
try
{
throw std::exception("Crashtest");
}
catch (...)
{
std::cerr << "Error" << std::endl; // never reached
}
return 0; // never reached
}
任何人都有一个解决方案的建议,直到他们解决了这个问题,这一点非常讨厌。
更新
英特尔已在此处发布了此错误的解决方法:
答案 0 :(得分:1)
我刚创建了一个带有预编译头的新C ++ Console应用程序,然后粘贴了您的代码。我无法重现这个问题。我能够在std::cerr <<
上放置一个断点并且无故障地击中它。
您是否尝试过重新安装Visual Studio 2013?我猜你有一个损坏的安装或配置错误的调试器。确保删除以前版本的Visual Studio。即使它们并排工作,我也看到过以前在本机调试中遇到的问题。
答案 1 :(得分:0)
确保已使用选项/EHsc
启用了C ++异常处理。
答案 2 :(得分:0)
本周末我对这个bug做了一些进一步的调查。首先,我卸载了Windows 7并升级到Windows 8.1 Enterprise(64位)。然后我安装了Visual Studio Ultimate 2013(v12.0.21005 REL)。我运行下面的程序没有任何问题,我认为我已经解决了问题。但是,当我安装英特尔C ++ Studio XE 2013(包含更新1的SP1)时,错误又回来了。所以(至少在我的系统上)似乎是Visual Studio 2013和英特尔C ++ Studio 2013如何协同工作的一个问题。
答案 3 :(得分:0)
我已经陷入这个问题3天,直到我发现问题出现在try-catch块中。查看这篇文章:http://msdn.microsoft.com/en-us/library/0yd65esw.aspx,我意识到不要离开&#34; catch&#34;空。请删除try catch块并检查。
嗯,在Visual Studio 2013中开发一个简单的顺序工作流SharePoint 2013时,我遇到了这个问题。&#34; OnTaskChanged&#34;方法
我希望答案可以帮助别人。