[英]Throwing std::exception crashes Visual Studio 2013 IDE
我剛剛向Microsoft提交了一個錯誤報告 ,在我的系統上引發了任何帶有std::exception
或繼承該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
}
在解決此問題之前,任何人都會提出解決方法的建議,此刻這很煩人。
更新
英特爾在此發布了針對此錯誤的解決方法:
我剛剛創建了一個帶有預編譯頭的新C ++控制台應用程序,然后粘貼了您的代碼。 我無法重現該問題。 我可以在std::cerr <<
上放置一個斷點,然后毫無問題地將其擊中。
您是否嘗試過重新安裝Visual Studio 2013? 我猜測您的安裝損壞或調試器配置錯誤。 確保刪除以前版本的Visual Studio。 即使它們並排工作,我以前也曾遇到本機調試問題。
確保已使用選項/EHsc
啟用C ++異常處理。
這個周末,我對此漏洞進行了進一步調查。 首先,我卸載了Windows 7,然后升級到Windows 8.1 Enterprise(64位)。 然后,我安裝了Visual Studio Ultimate 2013(v12.0.21005 REL)。 我在下面運行了程序,沒有任何問題,我認為我已經解決了問題。 但是,當我安裝Intel C ++ Studio XE 2013(包含更新1的SP1)時,該錯誤再次出現。 因此(至少在我的系統上)似乎Visual Studio 2013和Intel C ++ Studio 2013如何協同工作存在問題。
我一直在這個問題上停留了3天,直到發現問題出在try-catch塊中。 查看本文: http : //msdn.microsoft.com/zh-cn/library/0yd65esw.aspx ,我意識到了不留空白的重要性。 請卸下嘗試擋塊並進行檢查。
嗯,在Visual Studio 2013中以“ OnTaskChanged”方法開發簡單的順序工作流SharePoint 2013時,這個問題發生了。
我希望答案可以幫助其他人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.