次のページへデバッグを支援する便利な機能ここまでに見てきたのはVSでのデバッグ作業の基本中の基本だ。ここまで触れてこなかった「診断ツール」というデバッグをさらに便利に行うための機能もあるし、先ほど触れたようにブレークポイントについても簡単にさまざまな設定が可能だ。2017ではステップ実行をより簡単に行えるようにするための機能も追加されている。デバッグ作業の説明の最後にこれらについて簡単に説明しておこう。先ほど見たブレークポイントの話からだ。2017ではブレークポイントを示す赤い「●」の近くにマウスポインターを移動すると、次のようなツールチップが表示され、そこからそのブレークポイントに関する設定を簡単に行えるようになっている。ブレークポイントに関連する設定を行うダイアログを表示する。ブレークポイントが無効化される。無効化されている間はこの行が実行されてもデバッグ実行が中断されない。このうち、右側の[ブレークポイントを無効にする]ボタンはブレークポイントの有効/無効を切り替えるのに使用する(無効化されている場合は[ブレークポイントを有効にする]ボタンになる)。本連載で見てきた時計アプリのようなシンプルなアプリではなく、より複雑なアプリのデバッグを行っている際には、設定したブレークポイントには一時的に着目をしておらず、そこでアプリの実行が中断されると煩わしい場合がある。そのようなときにブレークポイントを削除せずに無効化できると便利な場合がある。左側の[設定]ボタンをクリックすると、次のような画面が表示され、各種の設定を行える。38〜」)をクリックすると、ブレークポイントの場所を手動で設定できる。2017で開いているプロジェクトに含まれているソースコードを一致させる」という意味だ。2017内で簡単なアプリをビルドして、デバッグ実行するときにはソースコードが一致しないことはないだろう。2017で開いているソースコードや、提供されているソースコードのバージョンやリビジョンが異なっているために)ソースコードが一致しないことがある。デフォルトでは「一致させる」となっているため、一致していない場合には、そのブレークポイントは無効化される。コードを許可する]チェックボックスをオンにする。ブレークポイントの設定ウィンドウ(2)ブレークポイントの「場所」を設定しているところ。その下にある[条件]チェックボックスと[アクション]チェックボックスをオンにすると、ブレークポイントでデバッグ実行を中断する条件の設定や、ブレークポイントに達したときに行う補足的な処理を指定できる。ブレークポイントの設定ウィンドウ(3)[条件]チェックボックスをオンにするとブレークポイントでデバッグ実行を中断するための条件を指定できる(上の画面)。[アクション]チェックボックスをオンにすると、そのブレークポイントの実行時に[出力]ウィンドウに表示するメッセージを指定できる。変数やプロパティなどの式の値を表示するには「{}」で囲む。[条件]チェックボックスをオンにすると、ブレークポイントでデバッグ実行を中断してコードエディタに復帰する条件を指定できる。マシン名/プロセスID/プロセス名/スレッドID/スレッド名を基に中断するかどうかをフィルタリングする[アクション]チェックボックスをオンにすると、ブレークポイントに達したときに[出力]ウィンドウに表示するメッセージを指定できる。[実行を継続します]チェックボックスをオンにすると、実行を中断せずにそのまま継続する。予備調査的に変数の値を[出力]ウィンドウに表示させ、着目している部分の動作が正常かの確認をしたい場合には[実行を継続します]チェックボックスをオンにしておくとよいだろう。2017ではステップ実行をより簡単に行えるような機能が追加された。ここまでに見てきたように、プログラムコード中の特定の箇所で実行を停止するには、ブレークポイントを設定したり、ステップ実行で1ステップずつプログラムを実行したりする必要があるが、この機能を使うとブレークポイントにヒットするなどしてプログラムが中断状態になった後、任意の位置までプログラムの実行を一気に進められる。以下では、上で設定したブレークポイントでプログラムが中断したものとして、この機能について見ていこう。FormFadeOutメソッドを呼び出す直前でプログラムは中断されている。FormFadeOutメソッド呼び出しの直前で中断した上でも見たように、このあとはステップインによりFormFadeOutメソッドの実行に移り、そこからはステップオーバーを繰り返して、1ステップずつ実行を繰り返すというのが常とう手段だ。ここでFormFadeOutメソッドのループ内にカーソルを移動してみると[ここまで実行します]というポップアップ表示と共に、緑色の小さな三角形の(DVDプレイヤーなどに見られる「再生/ポーズ」を模した)アイコンが表示される。[ここまで実行します]アイコン(赤枠内)アイコンの形状と名前から分かる通り、これをクリックすると、実行をここまで一気に進めて、そこで実行を再中断してくれる。この機能を使うと、注目している部分までチマチマとステップオーバーを繰り返す必要なくなるので、デバッグ実行がこれまでよりも快適に行える。2017でデバッグ実行を開始すると、IDEには診断ツールが表示される。診断ツールを使うと、デバッグビルド(デバッグで使用する各種情報を含んだビルド)とリリースビルド(デバッグ用の情報を含まない製品リリース用のビルド)の両者でメモリやCPUの使用量などを収集/分析できる。MyClockアプリをデバッグ実行し、上で設定したブレークポイントでデバッグ実行が中断した時点での診断ツールの表示を以下に示す。診断ツールこのウィンドウは大きく2つの領域に分かれていて、上部にはデバッグ実行開始から現在までのタイムライン/発生したブレークポイントイベント/アプリが使用しているメモリ量/CPUの使用率が表示される。上位エディションではIntelliTraceと呼ばれる機能と連携してより詳細な情報を収集できる)。デバッグ実行時には[CPU使用率]タブには情報は表示されない。プロファイラー]を選択する必要があるので注意しよう。上の画面では、[イベント]タブの[ブレークポイント]という表示からブレークポイントにヒットして、デバッグ実行が中断したことが分かる。メモリ使用量は当然のように起動直後に増え、そのあとは大幅な増減はない。これはMyClockアプリでは最初にさまざまなオブジェクトを作成したあとは時刻を表示し続けるだけなので当然だ。複雑なアプリでは、ユーザーの操作に応じて、実行時にメモリの使用量が変化するものだ。アプリが予想以上にメモリを使用している場合には診断ツールの[メモリ使用量]タブにある[スナップショットの作成]ボタンを使用して、メモリ使用量の増減を分析可能だ。プロファイラー]を選択すると(CPU使用率を調べたいときなど)、以下のようなウィンドウが表示される(ただし、アプリのソリューション構成をリリース用のビルドに設定する必要がある。この方法については次ページで解説する)。パフォーマンスプロファイラーを開始したところこのウィンドウで計測したい項目を設定して[開始]ボタンをクリックすると、リリースバージョンのアプリに対して、調査が開始される。本連載で作成したシンプルなMyClockアプリでは、これらは過剰な機能だが、.NET開発に慣れてきたらぜひとも活用するようにしよう。以上でプログラムは完成した。作ったので、このプログラムを実際にユーザーに使ってもらえるようにしてみよう。次に、プログラムのリリースと配布について簡単に解説しておく。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。