Visual Studioで条件付きブレークポイントを設定する方法


133

Visual Studioで条件付きブレークポイントを設定する簡単な方法はありますか?

変数の値が何かになったときにのみブレークポイントをヒットしたい場合、どうすればよいですか?


11
Expressエディションにはこの機能がないことに注意してください。
Alexei Levenkov、2011

1
私はExpress 2015を使用していますが、条件付きブレークポイントの機能があります
mark.monteiro

1
2017年のコミュニティエディションにも条件付きブレークポイントがあります
PentiumPro200

回答:


174

通常どおりにブレークポイントを設定します。それを右クリックします。「条件」をクリックします。


1
VS 2015では、ブレークポイントにカーソルを合わせ、歯車アイコンをクリックして条件を設定する必要があります
mark.monteiro

つまり、右クリックして条件を設定すると、「ブレークポイントの条件が失敗しました」というエラーが表示されます。
Toby Caulk

1
回答には、条件付きステートメントの構文、または情報リンクも含める必要があります。
Andrew、

50

Expressエディションを使用している場合、これを試すことができます。

#if DEBUG
    if( fooVariable == true )
        System.Diagnostics.Debugger.Break();
#endif

ifステートメントは、リリースのビルドブレークポイントが存在しないことを確認します。


3
これには、パフォーマンスと時間を節約できるという大きな利点があります。私は数秒しかかからない私のプログラム(たっ​​た約350万)のすべての潜在的なint 'id'を繰り返し処理していました。条件付きブレークポイントを使用しようとしましたが、条件付きブランチになかったため、実行速度が遅くなり、数分後にデバッグセッションが終了しました。コンパイルされたブレークポイントを使用して、それを瞬時にしました。
Goldfish Sandwich

35

Visual Studioには、条件付きブレークポイントのオプションが多数用意されています。

これらのいずれかを設定するには

  1. ブレークポイントを設定します。
  2. ブレークポイントを右クリックし、ポップアップメニューで適切なオプションを選択します。

これらのオプションは次のとおりです。

  • 指定したコード式に基づいて条件を設定できます(ポップアップメニューから[ 条件 ]を選択します)。たとえば、そのfoo == 8式または他の式を指定できます。
  • ブレークポイントは、特定の回数ヒットした後にトリガーさせることができます。(ポップアップメニューから[ ヒットカウント ]を選択します)。これは、実際には特定のヒットカウントでブレークすることに限定されていないため、楽しいオプションですが、他のいくつかのシナリオにもオプションがあります。可能性を探るのはあなたにお任せします。
  • プロセスID、スレッドID、マシン名にフィルターを設定できます(ポップアップメニューから[ フィルター ]を選択します)

16

それを行う別の方法、または(またはExpressを使用している場合)コードに条件を追加します。

if(yourCondition)
{
    System.Diagnostics.Debugger.Break();
}

9
  1. 行にブレークポイントを設定します
  2. REDボールを右クリック
  3. 条件付きブレークポイントを選択しました
  4. 設定条件

8

実態を書くのは難しい部分なので、

  1. 通常のブレークポイントを設定します
  2. ブレークポイントが初めてヒットするまでコードを実行します
  3. イミディエイトウィンドウ([デバッグ]> [ウィンドウ]> [イミディエイト])を使用して、式テストします
  4. ブレークポイントを右クリックし、[条件]をクリックして、式に貼り付けます

イミディエイトウィンドウを使用する利点:

  • それは持っているのIntelliSenseを
  • 式の評価時に、式の変数スコープ内にあることを確認できます。
  • がtrueまたはfalseを返すことを確認できます。

この例は、コードが「設定」という名前のテーブルを参照している場合に中断します。

table.GetTableName().Contains("Setting")


4
  1. 通常どおりにブレークポイントを設定します
  2. ブレークポイントを右クリックして、条件を選択します
  3. 「ブレークポイント条件」というダイアログが表示されます
  4. フィールドに条件を入力します(例: "i == 5")

ブレークポイントは、iが5の場合にのみヒットします。


4
  1. 通常どおりにブレークポイントを設定します。
  2. ブレークポイントマーカーを右クリック
  3. 「条件...」をクリックします
  4. 条件を記述します。変数名を使用できます
  5. 「正しい」または「変更された」のいずれかを選択します

4

Visual Studio 6.0の場合

Alt+ F9!!!


1
-1)これはVS 2012では機能しません2)この質問にはすでに他の(より良い)回答がたくさんあり、3)いったい誰がVS 6.0(1998年にリリースされた)を気にしているのですか?4)誰かがVS 6に関心がある場合でも、次のバージョンのVS(Visual Studio .Net)までサポートされなかった.Netがタグ付けされます
Tim Medora

7
まあ、他の答えはVS 6.0では機能しません。だから私は解決策を投稿しました。
Vorac 2013

1

breakpoint通常どおりに設定し、ブレークポイントを右クリックしてcondionオプションを選択し、条件を設定します。


1

条件付き関数のブレークポイントを作成します。

  1. 「ブレークポイント」ウィンドウで「新規」をクリックして、新しいブレークポイントを作成します。

  2. 「関数」タブで、「関数」に「Reverse」と入力します。Lineに1を入力し、Characterに1を入力して、LanguageをBasicに設定します。

  3. 「条件」をクリックし、「条件」チェックボックスが選択されていることを確認します。instr.length > 0「条件」に入力し、「true」オプションが選択されていることを確認して、「OK」をクリックします。

  4. [新しいブレークポイント]ダイアログボックスで、[OK]をクリックします。

  5. [デバッグ]メニューの[開始]をクリックします。


0

あなたがグーグルから来たなら、この答えはあなたが探しているものかもしれません。

  1. [デバッグ]> [新しいブレークポイント]> [関数ブレークポイント]をクリックします。 ここに画像の説明を入力してください

  2. そこで条件付きブレークポイントを選択します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.