Visual Studio 2010を使用していますが、この機能がC++で使用できることを知っています。
変数をいくつかの値に変更するコードをデバッグする必要があります。変数が特定の値を取得するときに、特定のケースでコードをデバッグしたいと思います。追加できることはわかってif(var == value)
いますが、それを行うためのエレガントな方法はありますか?
別の質問ですが、一般的に変数が変更されたときにブレークポイントを設定できますか?
Visual Studio 2010を使用していますが、この機能がC++で使用できることを知っています。
変数をいくつかの値に変更するコードをデバッグする必要があります。変数が特定の値を取得するときに、特定のケースでコードをデバッグしたいと思います。追加できることはわかってif(var == value)
いますが、それを行うためのエレガントな方法はありますか?
別の質問ですが、一般的に変数が変更されたときにブレークポイントを設定できますか?
ある値を受け取る変数のような条件を設定することは確かに可能です。これは、ブレークポイント条件として知られています。作成するには、次の手順を実行します。
これで、条件が true と評価された場合にのみブレークポイントがヒットします。
変数の値が何らかの理由で変更されたときに中断する 2 番目の項目は、データ ブレークポイントと呼ばれます。これらは C++ コードでのみ使用できます。これは、C#、 VB.NET、またはその他のマネージ言語 のオプションではありません。
Express 以外の Visual Studio エディションを使用している限り、ブレークポイント条件を使用して C# でこれを実現できます。
[ブレークポイント条件] ダイアログ ボックスで、[条件] ボックスにmyLocalVariable > 1などの有効な式を入力します。
と
...式の値が変更されたときにブレークする場合は、Has changedを選択します。
Has changedオプションを表示するには、 Breakpointsウィンドウでブレークポイントを右クリックし、Condition...を選択してから、下のスクリーンショットを確認してください。
F9 でブレークポイントを追加 - 右クリックして選択"Condition..."
- ブール条件を追加できるようになり、その条件が true と評価された場合にのみブレークポイントがヒットします。
ブレークポイントの範囲によって異なります。変数がローカルまたは静的でない場合は、できません。
ブレークポイントの条件を設定するには、ブレークポイントを右クリックすると、次の画面が表示されます。
条件を選択...
条件付きブレークポイントを使用できます。あなたの質問が VS2010 に固有のものであることは知っていますが、VS2012 以降では、Visual Basic で条件付きブレークポイントを使用するには、マネージド互換モードに切り替える必要があることに注意してください。ここで説明する理由と方法は次のとおりです。
VisualStudio Code では、条件付きブレークポイントを次のように設定できます。
ガターをクリックして、赤い点のブレークポイントを作成します
左側のツールバーから [デバッグ] を選択します (アイコン: バグの上に円とスラッシュ)
セクションは、変数、ウォッチ、コール スタック、ブレークポイントの 4 つです。
ブレークポイント セクションを展開して、ブレークポイントを表示します。
目的のブレークポイントを右クリック
選ぶEdit Breakpoint...
条件を設定し、<Enter> を押します。 例:
myvar == 1234
または
'stophere' in myvar
など
参考文献:
https://code.visualstudio.com/docs/editor/debugging#_conditional-breakpoints
これらの両方を行うことができます。
var==value
そこで「Is True」と言って選択できます。