本稿は、Scott Guthrie氏のブログを、氏の許可を得て翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。
Visual Studio 2010でのデバッグ・チップス
これは、VS 2010および.NET 4リリースに向けたブログ投稿シリーズの第26弾です。
本日のブログ投稿ではVisual Studioで使用できるデバッグの便利なチップスをカバーします。私の友達Scott Cate氏(素晴らしいVSのチップスやトリックをここに数多くブログ投稿している)が、(ほとんどが前から製品中にもあるにもかかわらず)Visual Studioを使用しているほとんどの開発者が恐らく知らない素晴らしいチップスを最近見せてくれました。もしまだそれらを活用していないとしたら、この投稿がきっかけになれば幸いです。すべて簡単に習得でき、多くの時間を省いてくれます。
カーソル行の前まで実行(Ctrl+F10)
よく見かけるのが、アプリケーションの最初の方でブレークポイントをヒットさせてデバッグし、繰り返しF10/F11を使って本当に調査したい実際の場所にたどり着くまでコードをステップ実行している人たちです。いくつかのケースでは、気をつけて各ステートメントを観察して、ずっとステップオーバーしています(この場合にF10/F11の使用は理にかなっています)。しかしながら、ほとんどの場合気にしているコードの行まで素早く移動しようとしています。この場合、F10/F11の使用は最善の方法ではありません。
その代わり、デバッガーがサポートしている「カーソル行の前まで実行」機能を活用した方がいいと思います。アプリケーションで実行したいコード中の行に単純にカーソルを置いて、Ctrl+F10を一緒に押します。これにより、アプリケーションはその行まで実行してデバッガーをブレークするので、複数回F10/F11を押さずに済みます。これは現在デバッグしているものとは別のメソッドやクラス中にあるコードの行まで実行したいとしても動作します。
条件付ブレークポイント
他にユーザビリティの研究で良く見られるのは、開発者がブレークポイントを設定して、アプリケーションを実行し、いくつかの入力を試し、ブレークポイントをヒットし、そしてさらに調査を進めるかどうか決定する前に、いくつかの条件が正となっているかどうかを手動でチェックしているケースです。そのシナリオが探しているものと合わない場合は、F5を押してアプリケーションを継続させ、他の入力をいくつか試し、そのプロセスを手動で繰り返します。
Visual Studioの条件付ブレークポイント機能は、この処理をもっともっと簡単にします。条件付ブレークポイントにより、指定している特定の条件がいくつか合致した時だけデバッガをブレークできます。これらにより、アプリケーションの手動による検査/再開が避けられ、デバッグの全体のプロセスで手動で退屈な部分をかなり軽減できます。
条件付ブレークポイントの有効化方法
条件付ブレークポイントを設定するのは非常に簡単です。コード内でF9を押すと特定の行でブレークポイントを設定します。
そしてエディターの左にあるブレークポイントの[赤丸]上で右クリックして[条件...]コンテキストメニューを選択します。
これにより、ダイアログが表示され、いくつかの条件が正の時のみブレークポイントがヒットするように指定できます。例えば、以下のコード式を書くことで、ローカルのpaginatedDinnersリストのサイズが10以下の時のみデバッガがブレークするように指定できます。
これでアプリケーションを再実行して検索すると、デバッガは10以下の夕食会が戻される検索を実行した時だけブレークします。もし夕食会が10以上の場合はブレークポイントはヒットしません。
ヒットカウント機能
時々、N回目に正になる条件の時にブレークしたい場合があります。例えば、10以下の夕食会の5回目だけ検索から戻るなどです。
これはブレークポイント上で右クリックして[ヒット カウント...]メニューコマンドを選択します。
これによりダイアログが表示され、条件がN回目に合致した時、または毎回N回合致した時、またはN回の発生ごとのみ、ブレークポイントがヒットするよう指定できます。
マシン/スレッド/プロセスのフィルタリング
ブレークポイントを右クリックして[フィルタ...]メニューコマンドを選択すると、ブレークポイントが特定のマシン上や、特定のプロセス内、または特定のスレッド上で発生した場合にのみヒットするように指定することもできます。