49

Visual Studio 2010を使用していますが、この機能がC++で使用できることを知っています。

変数をいくつかの値に変更するコードをデバッグする必要があります。変数が特定の値を取得するときに、特定のケースでコードをデバッグしたいと思います。追加できることはわかってif(var == value)いますが、それを行うためのエレガントな方法はありますか?

別の質問ですが、一般的に変数が変更されたときにブレークポイントを設定できますか?

4

8 に答える 8

97

ある値を受け取る変数のような条件を設定することは確かに可能です。これは、ブレークポイント条件として知られています。作成するには、次の手順を実行します。

  • 変数の変化点にブレークポイントを設定する
  • ブレークポイントを右クリックし、「条件」を選択します
  • 「theNewValue == 42」のような条件を入力します

これで、条件が true と評価された場合にのみブレークポイントがヒットします。

変数の値が何らかの理由で変更されたときに中断する 2 番目の項目は、データ ブレークポイントと呼ばれます。これらは C++ コードでのみ使用できます。これは、C#、 VB.NET、またはその他のマネージ言語 のオプションではありません。

于 2011-09-20T16:03:39.557 に答える
4

Express 以外の Visual Studio エディションを使用している限り、ブレークポイント条件を使用して C# でこれを実現できます。

[ブレークポイント条件] ダイアログ ボックスで、[条件] ボックスにmyLocalVariable > 1などの有効な式を入力します。

...式の値が変更されたときにブレークする場合は、Has changedを選択します。

Has changedオプションを表示するには、 Breakpointsウィンドウでブレークポイントを右クリックし、Condition...を選択してから、下のスクリーンショットを確認してください。

ブレークポイント条件のオプションが変更されました

于 2011-09-20T16:01:35.093 に答える
3

F9 でブレークポイントを追加 - 右クリックして選択"Condition..."- ブール条件を追加できるようになり、その条件が true と評価された場合にのみブレークポイントがヒットします。

于 2011-09-20T16:02:03.940 に答える
3

ブレークポイントの範囲によって異なります。変数がローカルまたは静的でない場合は、できません。

ブレークポイントの条件を設定するには、ブレークポイントを右クリックすると、次の画面が表示されます。

ここに画像の説明を入力してください

条件を選択...

于 2011-09-20T16:03:36.153 に答える
2

条件付きブレークポイントを使用できます。あなたの質問が VS2010 に固有のものであることは知っていますが、VS2012 以降では、Visual Basic で条件付きブレークポイントを使用するには、マネージド互換モードに切り替える必要があることに注意してください。ここで説明する理由と方法は次のとおりです。

Visual Studio 2013 で管理された互換性モードに切り替える

于 2015-05-28T09:54:25.127 に答える
1

VSコード

VisualStudio Code では、条件付きブレークポイントを次のように設定できます。

  1. ガターをクリックして、赤い点のブレークポイントを作成します

  2. 左側のツールバーから [デバッグ] を選択します (アイコン: バグの上に円とスラッシュ)

  3. セクションは、変数、ウォッチ、コール スタック、ブレークポイントの 4 つです。

  4. ブレークポイント セクションを展開して、ブレークポイントを表示します。

  5. 目的のブレークポイントを右クリック

  6. 選ぶEdit Breakpoint...

  7. 条件を設定し、<Enter> を押します。 例:
    myvar == 1234
    または
    'stophere' in myvar
    など

参考文献:

https://code.visualstudio.com/docs/editor/debugging#_conditional-breakpoints

于 2019-04-10T19:53:41.187 に答える
0

これらの両方を行うことができます。

  1. VS にブレークポイントを設定します。余白の赤い点を右クリックし、[条件の追加] を選択します。var==valueそこで「Is True」と言って選択できます。
  2. 上のダイアログの「変更あり」オプションを使用すると、おそらくこれを実現できます。
于 2011-09-20T16:03:30.197 に答える