連載:〜ScottGu氏のブログより〜VS 2010デバッガの改善(ブレークポイント、DataTips、インポート/エクスポート)Scott Guthrie 著/Chica 訳2010/05/07 |
|
|
これは、VS 2010および.NET 4リリースに向けたブログ投稿シリーズの第21弾です。本日のブログ投稿ではVS 2010デバッガの素晴らしい利用性の改善点をいくつかカバーします。
VS 2010デバッガには素晴らしい新機能がたくさんあります。IntelliTrace(またの名をデバッグ履歴)、新しい並列/マルチスレッド・デバッグ機能や、ダンプ・デバッグのサポートのような機能は、このリリースのデバッグ改善について話をする際にはいつも、(受けるに値する)バズや注目を多く集めます。今後、これらの利用方法についてもブログ投稿を行っていきます。
ですが本日の投稿では、まずはVS 2010のリリースにも含まれていて便利だと思う、いくつかの小さいけど優れたデバッガの利用性の改善をカバーするところから始めようと思います。
ブレークポイントのラベル
VS 2010にはデバッガのブレークポイント管理を改善する新しいサポートが含まれています。特に便利な機能は“ブレークポイント・ラベル”と呼ばれるもので、プロジェクトおよびソリューション全体でのブレークポイントの、より改善されたグループ化やフィルタリングが可能です。
Visual Studioの以前のリリースでは、各デバッガのブレークポイントを別々の項目として管理しなければなりませんでした。各ブレークポイントを個別に管理することは、大きなプロジェクトや、デバッグしているものによってオン/オフするブレークポイントの“論理グループ”を管理したい場合などには苦痛となります。新しいVS 2010の“ブレークポイント・ラベル”機能を使用すると、それらのブレークポイントの“グループ”に名前を付け、1つのユニットとしてそれらを管理できます。
■ラベルを使用して複数のブレークポイントをグループ化
以下はVisual Studio 2010のブレークポイント・ウィンドウのスクリーンショットです。これはソリューションで定義されているすべてのブレークポイントを一覧しています(このケースはASP.NET MVC 2のコード・ベースです)。
図1 |
上記の一覧にある最初と最後のブレークポイントは、ASP.NET MVCフレームワークによってコントローラのインスタンスが作成されたとき、およびリリースされたときにデバッガにブレークインします。
VS 2010を使うと、それらの2つのブレークポイントを選択、右クリック、そして新しい“Edit labels…”メニュー・コマンドを選択して、それらに共通のラベル/名前を与えられます(それらの検索や管理を簡単にします)。
図2 |
以下は“Edit labels”コマンドを選択したときに表示されるダイアログです。これを使って、新しい文字列ラベルをブレークポイントに対して作成するか、すでに定義済みのものを選択します。今回は、これら2つのブレークポイントがカバーするものを表すために“Lifetime Management”という新しいラベルを作成します。
図3 |
“OK”ボタンを押すと、選択した2つのブレークポイントは、新しく作成した“Lifetime Management” ラベルの下にグループ化されます。
図4 |
■ラベルによるブレークポイントのフィルタリング/ソート
“Search”コンボボックスを使用して、素早くラベル別にブレークポイントをフィルタ/ソートできます。以下では、“Lifetime Management”ラベルにあるブレークポイントだけを表示しています。
図5 |
■ラベル別トグルによるブレークポイントのオンとオフ
ラベル・グループにより、ブレークポイントのセットのオン/オフをトグルできます。ラベルのグループにより単純なフィルタができます。[Ctrl]+[A]キーですべてのブレークポイントを選択して、1回のクリックですべての有効/無効を設定できます。
図6 |
ブレークポイントのインポート/エクスポート
VS 2010は現在、XMLファイルへのブレークポイントのインポート/エクスポートをサポートしています。これにより、ほかの開発者へ渡したり、バグ・レポートに添付したり、もしくは単純に後で再ロードしたりできます。
ブレークポイントのサブセットだけをエクスポートするには、特定のラベルでフィルタし、“Export breakpoint”ボタンをブレークポイント・ウィンドウでクリックします。
図7 |
上記では、(追いかけているバグに関する)2つの特定のブレークポイントだけをエクスポートするために、ブレークポイント一覧をフィルタしました。これらのブレークポイントをXMLファイルにエクスポートして、バグ・レポートまたはメールに添付できます。それにより、ほかの開発者も正確な状態で簡単にデバッガを設定でき、別のマシン上でそれを調査できるようになります。
ピン留めDataTips
Visual Studio 2010にはまた、いくつか素晴らしく新しい“DataTipsのピン留め”機能が含まれており、デバッガで変数や式の値を、よりうまく確認したり追跡したりできるようになっています。
デバッガ内で単純に変数や式の上にマウスを移動し、DataTipsを表示させてから、その上で新しい“ピン”ボタンをクリックして、そのDataTipsが常に表示されるようにします。
図8 |
スクリーン上でいくつでもDataTipsを“ピン留め”できます。トップレベルの変数をピン留めする以外に、変数のサブプロパティまで移動して、それらもピン留めできます。
以下では3つの変数(“category”、“Request.RawUrl”、“Request.LogonUserIdentity.Name”)を“ピン留め”しています。最後の2つの変数は“Request”オブジェクトのサブプロパティであることをご確認ください。
図9 |
■ピン留めしたDataTipsにコメントを関連付け
デバッガ内でピン留めしたDataTipsの上にマウスを持っていき、いくつかの追加のUIを表示します。
図10 |
このUIの下にあるコメント・ボタンをクリックするとDataTipsが広がり、オプションでそれにコメントを加えられるようになります。
図11 |
これにより非常に簡単にデバッグの注意書きを添付あるいは追跡できるようになります。
図12 |
■ピン留めされたDataTipsはデバッグ・セッションとVisual Studioセッションの両方で利用可能
ピン留めされたDataTipsは複数のデバッグ・セッションで利用できます。つまり、もしデバッガを停止し、コードを変更してから、再コンパイルして新しいデバッグ・セッションを開始しても、どのピン留めされたDataTipsも関連付けたコメントとともにそのまま存在します。
ピン留めされたDataTipsはまた、複数のVisual Studioセッションにわたり使用できます。つまり、もしプロジェクトを閉じてVisual Studioをシャットダウンし、後でそのプロジェクトをまた開いたとしても、どのピン留めされたDataTipsも、関連付けられたコメントとともにそこに存在します。
最後のデバッグ・セッションからの値を確認(素晴らしいコード・エディタ機能)
コードに戻るためだけに、これまで何度デバッガを停止し、そしてこう言ったでしょうか?
$#@!−それで変数の値は何だったっけ???
ピン留めされたDataTipsのよいところの1つが“最後のデバッグ・セッション”を追跡し続けることです。そのため、デバッガがもはや起動されていなかった場合でも、VB/C#のコード・エディタ内でそれらの値を探せます。
コード・エディタ内にいてデバッガが起動されていないときは、DataTipsはデフォルトでは隠されています。ですが、コード・エディタの左側のマージン上で以前設定した、ピン留めされた各DataTipsを見つけられます。
図13 |
ピン留めされたDataTips上にマウスを移動させると、それがスクリーン上に表示されるようになります。以下では、エディタの最初のピンにマウスを置いたときに、どのようになるかを確認できます。関連付けられたコメントとともに、“Request”オブジェクトのDataTipsに対するデバッグ・セッションの最後の値が表示されています。
図14 |
これによりプロジェクト上でコード編集モードとデバッグ・モードをトグルして、状態や条件を簡単に追跡し続けられます。
ピン留めされたDataTipsのインポート/エクスポート
この投稿ですでに話したように、ピン留めされたDataTipsはデフォルトではVisual Studioセッションにわたり保存されています(これを有効化するのに何も行う必要はありません)。
VS 2010はピン留めされたDataTipsのXMLファイルへのインポート/エクスポートをサポートしているため、ほかの開発者へ渡したり、バグ・レポートへ添付したり、単純に後で再ロードしたりできます。
図15 |
ブレークポイントのインポート/エクスポートに対する新サポートを組み合わせると、複数の開発者とデバッガの構成を共有でき、デバッグ・セッションを通じた協業が非常に簡単になります。
まとめ
Visual Studio 2010には大小含め数多くの素晴らしいデバッグ新機能が含まれています。
本日の投稿は、いくつかの優れたデバッガの利用性の改善についての情報共有でした。上記の機能はすべて、Visual Studio 2010 Professional版でサポートされています(ピン留めされたDataTips機能は無償のVisual Studio 2010 Express版でもサポートされています)。
今後のブログ投稿では、IntelliTrace、改善された並列/マルチスレッド・デバッグ、ダンプ・ファイルの分析のような“大きな大きな”新しいデバッグ機能をいくつかカバーする予定です。
Hope this helps,
Scott
P.S. ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。
「〜ScottGu氏のブログより〜」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|