2

私は多くのデバッグを行う Visual Studio 2012 プロジェクトを持っています。ときどき (1 日に複数回)、デバッグを行っていると、Visual Studio がランダムに 5 ~ 10 秒間停止します。その後、変数の値を評価できず(変数によってfunction evaluation timed out)、シングルステップは機能しません。私にできることは、デバッグを再開することだけです。

ただし、これは非常にランダムな問題です。15 分間の長いセッションでデバッグを行っているときに発生することがあります。最初にヒットしたブレークポイントで発生することもあります。そして、ほとんどの場合、Visual Studio 2012 は機能します...時々、この奇妙な問題が発生します。私はそれを再現する方法がわかりません。1 つのタイプのオブジェクトだけに関連付けられているわけではなく、1 つのプロジェクトに関連付けられているわけでもありません。また、VS2010で同じプロジェクトを開くことができ、この種の問題は一度もありませんでした

この問題は他の場所でも見られましたか? この煩わしさを防ぐためにできる追加の構成を知っている人はいますか?

4

1 に答える 1

0

このバグは、2005 年以降のすべての Visual Studio バージョン (まだ VS 2013 Update 3) 以来、私を夢中にさせています! 私の場合、タイムアウトが発生した後、プロセスは正しく続行されず (現在実行されているスレッドが終了します)、VS をデタッチする場合は、プロセスを終了するときにのみ実行できます。

この問題の実際の解決策はありませんが、何年にもわたって、次のことが役立つ可能性があることがわかりました。

  • このバグは、大規模で複雑なプログラムで発生する可能性が高くなります。
  • 複数のスレッドで発生する可能性が高くなります。
  • コードをステップ実行するほど発生する可能性が高くなります。どこかにブレークポイントを置いて F5 キーを押してそこにジャンプする方が、その場所まで足を踏み入れるよりはましです。
  • それが発生した場合、コードをさらにステップインしようとしないでください。ランダムにどこかにジャンプし、次のステップでスレッドが停止します。私の場合、ほとんどの場合、プログラムを再起動するだけで解決します。
  • ブレークポイントを削除/無効にしてみてください。アクティブなブレークポイントが多いほど、リスクが高くなります。条件付きブレークポイントは特に「危険」です。
  • 可能な限り、変数を監視しているすべてのウィンドウ (Autos、Locals、Watch ウィンドウ) を閉じてみてください。
  • ウォッチ ウィンドウが必要な場合は、不要な変数をすべてウィンドウから削除します。評価される変数が多いほど、ハングのリスクが高くなります。
  • [ツール] -> [オプション] -> [デバッグ] -> [一般] -> [プロパティ評価を有効にする] のチェックを外します。これが、このバグを防ぐ最も効果的な方法です。ただし、デバッガーはかなり使い物にならないので、使用したくありません。
  • [VS 2013 のみ:] Tools -> Options -> Debugging -> General -> Use Managed Compatibility Mode を有効にしてみてください。これにより、VS 2012 からのデバッグ動作が有効になり、少なくとも VS 2013 で問題が修正されるまでは、より堅牢になる可能性があります。
于 2014-11-06T16:55:59.183 に答える