11

私は C# と Silverlight のプロジェクトに取り組んでいますが、デバッグ時にブレークポイントがヒットしなくなるという問題が時々発生します。エディターでは透明にならないので、正しいコードが読み込まれて実行されていることがわかります。

例は次のとおりです。

私はValueゲッターとセッターを持っていて、それはコントロールにバインドされています。セッターにブレークポイントを配置しValue、コントロールから値を変更すると、ブレークポイントがヒットしません。

IIS をリセットするとこの問題が解決することはわかっていますが、原因を知りたいです。他の誰かが同様の動作を見つけますか? 誰かが考えられる原因の方向に私を向けることができれば、それは大歓迎です.

4

5 に答える 5

9

Visual Studio 2010 にはオプションがあります。

  • ツール -> オプション...
  • デバッグ -> 一般
  • 「プロパティと演算子のステップ オーバー (マネージドのみ)」

これがチェックされていないことを確認してください。これは、ブレークポイントが赤い実線の円であると想定しており、VS がデバッグ シンボルを見つけたことを示しています。

または、コードのこれらの要素を、さまざまなデバッグ属性の 1 つ、つまりDebuggerStepThroughAttributeDebuggerNonUserCodeAttributeおよびで修飾することもできますDebuggerHiddenAttribute。これらは、ブレークポイントがそこにある場合でも、デバッガーがメソッドに入るのを停止する場合があります。

もちろん、デバッグしているコードが最適化されている場合は、行が欠落しているように見える場合があります。最適化された行をブレークポイントしようとするとどうなるかわかりません。

ブレークポイントが中空になっている (赤く点灯していない) 場合、Visual Studio はコードのデバッグ シンボルを見つけられない可能性があります。

リセットによって問題が解決した場合、おそらくデバッグ中のコードと元のソース ファイル/シンボルとの間に違いがあるため、これを緩和するオプションがあります。

  • 上記と同じオプション領域。
  • 「元のバージョンと完全に一致するソース ファイルが必要」
于 2011-08-19T14:44:06.327 に答える
1

WinFormsアプリを使用しているときに、この問題に何度も直面します。とても簡単なことは、ソリューションをクリーンアップして再構築する前にVSを再起動することです。次に、何も機能しない場合は、binディレクトリを削除して、再構築します。私がする最後のオプションは、マシンを再起動することです。

于 2011-08-19T14:47:35.693 に答える
0

私は最近この問題を抱えていました。正確な原因はわかりませんでしたが、簡単な修正方法は、アプリが (リリースではなく) デバッグ モードで実行されていることを確認し、ソリューションをクリーンアップして再構築することでした。

于 2011-08-19T14:44:10.110 に答える