今日の午後、非常に厄介なバグに遭遇しました。私はしばらくの間取り組んでいるコンソールアプリケーションで何気なく働いていましたが、変数をクイックウォッチするとVS2012デバッガーがハングし始めました。15 ~ 20 秒間ハングした後、メッセージが表示されます
前回の関数評価がタイムアウトしたため、関数評価は無効になっています
次に F10 を押すと、デバッガーの接続が解除され、プロセスが続行されます。暗黙的に宣言されているほとんどすべての変数でクラッシュします
この問題を解決するためにこれまでに行った手順を次に示します。
私が取ったステップ:
- VS を再起動する
- コンピュータを再起動する
- すべてのブレークポイントを削除しました
- ncb と suo ファイルを削除
- シンボル サーバーが有効になっていません
- ネットワークの場所は使用されません。ユーザー ファイルはローカル、プロジェクト ファイルはローカルです。
- マイ コードのみの有効化/無効化
- Enable .NET Framework source stepping が有効になっていないことを確認
- プロパティのステップオーバーが有効になっていることを確認
- [ソース サーバー サポートを有効にする] が有効になっていないことを確認
- /SafeMode を使用して Visual Studio を起動し、拡張機能を抑制します
- ウォッチウィンドウをクリアしました(とにかく空でした)
- ターゲット プラットフォームを x64 および任意の CPU に変更してみました
- アンチウイルスの無効化
- Visual Studio のデフォルト設定のリセット (devenv.exe /ResetSettings)
- VSを再インストール
私がデバッグしているアプリケーション:
- タイプ : C# コンソール アプリケーション
- 対象フレームワーク: 3.5
- プラットフォーム ターゲット: x86
私の健康のために、助けてください。
編集: Visual Studio Update 3、バージョン 11.0.60610.01 があります。
編集:私のコンピューターの仕様
- Windows 7 アルティメット 64 ビット
- デル オプティプレックス 960
- インテル コア i5-2400 3.1 GHz
- 4GBのRAM
編集: Visual Studio update 3 なしで 2 台のマシン (同じコード) でテストしました。
編集: 次のコード行のみを含む同じ設定で単純化されたコンソール アプリケーションを作成しました。見ているとハングの問題が発生し、その後、接続も解除されます。マシンの何が問題なのですか?
これは、デバッガーをハングアップさせる単純化されたアプリケーションです。
static void Main(string[] args)
{
var _AppLocation = System.Reflection.Assembly.GetEntryAssembly().Location;
_AppLocation = _AppLocation.Substring(0, (_AppLocation.Length -
(System.Reflection.Assembly.GetEntryAssembly().GetName().Name.Length + 5)));
var directoryInfo = new DirectoryInfo(_AppLocation);
Console.ReadyKey(); //I break here, check the directoryinfo
}
編集 10/3/13: これはまだ解決されておらず、すべて (オフィス、フレームワーク、vs) を完全に再インストールしても問題は解決しませんでした。OS/ハードウェアに関連する vs2012 のバグである必要があります。私は Microsoft でチケットを開き、彼らが何か有用な情報を見つけたら更新します。
EDIT 10/30/13: この問題は、ハードウェア構成が異なる 2 台のマシンで再現されました。問題を見つけるために、私はまだマイクロソフトと連絡を取り合っています。フレームワーク/Windows ビルド/ビジュアル スタジオに関連するもののように見えます。
編集 11/19/13: 私はまだ Microsoft VS エスカレーション チームと連絡を取り合っています。問題のプロセス モニター ログとビジュアル スタジオ クラッシュ ダンプを以下に示します。http://sdrv.ms/1egpX4O