.NET TIPS

特定の条件のときにデバッグをブレーク(停止)させるには?[C#、VB]

デジタルアドバンテージ 一色 政彦
2007/12/27

 Visual Studio(以降、VS)で開発中のプログラムをデバッグする際には、次の画面のように、プログラムのデバッグ実行をブレーク(=停止)させたい場所にブレークポイントを設定する。

Visual Studioでのブレークポイントの設定
ブレークポイントを設定するには、ブレークさせたい行で[F9]ボタンを押すか、コード・エディタの左端にある余白部分(=この画像のマウス・カーソルのある辺り)をクリックするか、メニュー・バーから[デバッグ]−[ブレークポイントの設定/解除]を選択すればよい。

 しかし実際のデバッグ作業では、「特定の条件のときのみブレークさせたい」ということがよくある。例を挙げると、上の画面のコード(C#)では1000回のループを回しているが、例えば「999回目のときのみブレークさせたい」という場合、1〜998回の間、すべてブレークされてしまうと面倒なうえ作業効率も悪い。こういった問題を回避して特定の条件でデバッグをブレークさせる方法を紹介する。

 VS 2005/2008と、VS.NET 2002/2003では操作方法が少し違うので、それぞれの方法について紹介する。

特定の条件でデバッグをブレークさせる方法(VS 2005/2008)

 VS 2005/2008の場合。

 まず、VSの(C#やVBなどの)コード・エディタで、ブレークポイントを設定する(先ほどの画面を参照)。次にコード・エディタの左端にある余白部分に表示されている赤丸のブレークポイントの印を右クリックし、表示されるコンテキスト・メニューから[条件]を選択する。

ブレークポイントの[条件]を設定する手順(VS 2005/2008)

 [ブレークポイントの条件]ダイアログが表示されるので、ここに条件を設定して[OK]ボタンをクリックする。ここでは、「999回目のときのみブレークさせたい」ので、条件として「i==999」(変数「i」が「999」と等しいとき)を入力する。なお、(「==」ではなく)「=」とすると代入になってしまうので注意してほしい。「>」「<」「>=」「<=」なども利用できる。

[ブレークポイントの条件]ダイアログでの条件の設定(VS 2005/2008)
999回目のときのみブレークする条件を設定している例。
  [条件]チェックボックスはチェックを入れたままにする。
  条件式を記入する。「i==999」という記述は「変数『i』が『999』と等しいとき」を意味する。
  [true の場合]を選択すると、条件式で得られる値がtrueのときにデバッグがブレークする。
  [変更された場合]を選択すると、の条件式で得られる値が変更されたときにデバッグがブレークする。

 以上で設定は完了だ。後は実際にデバッグ実行すると、次のように条件に合わせてデバッグがブレークされる。

特定の条件でデバッグがブレークする

特定の条件でデバッグをブレークさせる方法(VS.NET 2002/2003)

 VS.NET 2002/2003場合。

 まず、VSの(C#やVBなどの)コード・エディタでブレークポイントを設定したい行に入力カーソルを合わせ、メニュー・バーから[デバッグ]−[ブレークポイントの作成]を選択する。

ブレークポイントを設定して[条件]を設定する手順(VS.NET 2002/2003)
まず[ブレークポイントの作成]を行う。
  ブレークポイントを設定したい行に入力カーソルを合わせる。
  メニュー・バーから[デバッグ]−[ブレークポイントの作成]を選択する。

 [ブレークポイントの作成]ダイアログが表示されるので、[ファイル]タブを選択して、[条件]ボタンをクリックする。[ブレークポイントの条件]ダイアログが表示されるので、条件を設定して[OK]ボタンをクリックする。ここでは、先ほどと同様に、条件として「i==999」を設定する。

[ブレークポイントの条件]ダイアログでの条件の設定(VS.NET 2002/2003)
999回目のときのみブレークさせる条件を設定している例。設定内容の詳細は、前述の「[ブレークポイントの条件]ダイアログでの条件の設定(VS 2005/2008)」を参照してほしい。

 以上で設定は完了。後は実際にデバッグ実行すると、指定した条件でデバッグがブレークする。End of Article

カテゴリ:クラス・ライブラリ 処理対象:デバッグ&トレース
カテゴリ:Visual Studio .NET 処理対象:IDE
カテゴリ:Visual Studio 2005 処理対象:IDE
カテゴリ:Visual Studio 2008 処理対象:IDE

この記事と関連性の高い別の.NET TIPS
VS.NETでブレークポイントを簡単に設定/解除するには?
テスト用コードをデバッグ時にのみ実行するには?
Visual Studioで静的HTMLページのJavaScriptコードをデバッグするには?
部分信頼のClickOnceアプリケーションをデバッグするには?
コメントに記述された変数の内容を確認するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間