VS 2010:デバッグの革新

これは、VS 2010および.NET 4のリリースに特化したシリーズの21番目の記事です。今日の投稿では、VS 2010のデバッガーに伴う優れた操作性の改善について説明します。



VS 2010デバッガーには、Intellitrace(別名ヒストリカルデバッガー)、新しい並列/マルチスレッドデバッグ機能、新しいバージョンについて説明する際に注意を要するデバッグダンプサポートなど、多数の優れた機能が含まれています。



今日の投稿では、VS 2010で登場したデバッグ中の小さな、しかしそれでも快適な瞬間の話を始めます。



ブレークポイントラベル



VS 2010は、デバッガブレークポイントをより便利に管理するための新しい機能を追加します。 本当に便利な機能の1つに「ブレークポイントラベル」があり、プロジェクト内のポイントをより適切にグループ化およびフィルタリングできます。



Visual Studioの以前のバージョンでは、各デバッガブレークポイントを個別のアイテムとして管理する必要がありました。 デバッグ対象に応じて有効または無効にできるブレークポイントの特定の論理グループを保存する場合、特に大規模なプロジェクトでは、各ポイントを個別に管理するのは面倒で苦痛な作業です。 VS 2010の新しい機能「ブレークポイントラベル」を使用して、このポイントの「グループ」に名前を付けて、それらを1つとして管理できるようになりました。



ラベルを使用して複数のブレークポイントをグループ化する


以下は、Visual Studio 2010のブレークポイントウィンドウのスクリーンショットです。このリストには、プロジェクト(この場合はASP.NET MVC 2)のすべてのブレークポイントが含まれています。



image



リストの最初と最後のポイントは、Controllerインスタンスが作成されるとデバッガーを停止します。



VS 2010を使用して、これらの2つのポイントを選択し、それらを右クリックして[ラベルの編集...]を選択して名前を付けることができます。



image



以下は、「ラベルの編集」をクリックすると表示されるウィンドウです。 これを使用して、ブレークポイント用の新しい文字列ラベルを作成したり、既存のラベルを選択したりできます。 この場合、「Lifetime Management」という名前の新しいラベルを作成して、2つのポイントを説明します。



image



[OK]をクリックすると、選択した2つのポイントが、作成された[Lifetime Management]ラベルの下にグループ化されます。



image



ラベルを使用してブレークポイントをフィルターおよびソートする


[検索]ドロップダウンリストを使用して、ラベルでブレークポイントをすばやくフィルタリングまたはソートできます。 以下に、「Lifetime Management」というラベルが付いているポイントのみを示します。



image



ラベルを介してブレークポイントをオン/オフにします


ブレークポイントのグループを有効または無効にすることもできます。 グループをラベルでフィルタリングし、Ctrl-Aですべてのポイントを選択し、必要に応じてそれらをアクティブまたは非アクティブにするだけで十分です。



image



ブレークポイントのインポート/エクスポート



VS 2010は、ブレークポイントのXMLファイルへのインポート/エクスポートをサポートしており、ブレークポイントを別の開発者に転送したり、エラーレポートに添付したり、後でリロードしたりできます。



ブレークポイントの特定のサブセットのみをエクスポートするには、それらをラベルでフィルタリングし、[ブレークポイント]ウィンドウで[ブレークポイントのエクスポート]をクリックします。



image



上記では、ポイントをフィルター処理して、特定の2つのポイント(エラーに固有)のみをエクスポートしました。 ポイントデータをXMLファイルにエクスポートし、それをエラーレポートまたはメールで添付することにより、別の開発者が別のマシンでデバッガを簡単に構成できます。



ドッキング可能なデータヒント



Visual Studio 2010には、「ドッキング可能なデータヒント」と呼ばれる興味深い機能も含まれています。これにより、デバッグモードで変数と式の値を追跡できます。



デバッグモードで変数または式をポイントするだけで、値を表示する補助ツールチップが表示され、新しい「ペーパークリップ」をクリックして固定します。



image



必要と思われる任意の数のデータヒントを固定できます。 さらに、高レベル変数を修正することにより、特定の変数の内部プロパティをより深く掘り下げ、内部変数を固定することができます。



以下では、「category」、「Request.RawUrl」、「Request.LogonUserIdentity.Name」の3つの変数を修正しました。 最後の2つの変数は、「Request」オブジェクトの内部プロパティであることに注意してください。



image



固定されたデータヒントのバインドされたコメント


ドッキングされたDataTipにカーソルを合わせると、追加のインターフェイス要素が表示されます。



image



DataTipのコメントボタンをクリックすると、オプションでコメントを追加できます。



image



これにより、デバッグコメントの添付と追跡が非常に便利になります。



image



固定されたデータヒントは、デバッグセッションとVisual Studioで使用できます。


固定されたデータヒントは、いくつかのデバッガーセッションで使用できます。 つまり、デバッガーを停止し、コードに変更を加え、新しいデバッグセッションを再コンパイルして再開すると、ピン留めされたすべてのデータヒントが元の場所に残り、コメントも添付されます。



固定されたデータヒントは、いくつかのVisual Studioセッションで使用できます。 これは、プロジェクトを閉じ、Visual Studioを閉じ、後でプロジェクトを開いて、ピン留めされたすべてのDataTi'pが所定の位置にあり、コメントが付いていることを確認できることを意味します。



以前のデバッグセッションの値を表示する



コードに戻って次のように言うために、デバッガを何回停止しましたか。

なんとx $#nya! -この変数の値は何でしたか????



DataTipsの良い点の1つは、デバッグセッションの最後の値を追跡できることですデバッグモードを終了しても 、VB / C#コードエディターでこれらの値を表示できます



コードエディタを使用しているとき、およびデバッグセッションの外では、データヒントはデフォルトで非表示になっています。 コードエディターのインデントの左側に、ドッキングされた各DataTipのペーパークリップがあります。



image



ドッキングされたDataTipにマウスを向けると、画面に表示されます。 以下のスクリーンショットは、エディターで最初のクリップにカーソルを合わせるとどうなるかを示しています。「Request」オブジェクトとコメントの最後のデバッグセッションの値が表示されます。



image



これにより、デバッグモードとコード編集モードを切り替えるときに、ステータスと条件を簡単に追跡できます。



固定されたDataTipsのインポートとエクスポート



この記事で前述したように、固定されたデータヒントはすべてのVisual Studioセッションでデフォルトで保存されます。



VS 2010は、固定されたDataTipsのXMLファイルへのインポートまたはエクスポートもサポートしています。これは、後で他の開発者に転送したり、エラーレポートに添付したり、将来リロードしたりできます。



image



ブレークポイントのインポート/エクスポートのサポートとともに、この機能により、さまざまな開発者とのデバッガー設定の交換がはるかに簡単になり、



まとめ



Visual Studio 2010には、デバッガ用の小規模なものから巨大なものまで、数多くの優れたイノベーションが含まれています。



本日の投稿では、デバッガーの使いやすさが向上していることが明らかになりました。 上記の機能はすべて、Visual Studio Professional Editionでサポートされています(ドッキング可能なDataTipsはVisual Studio 2010 Express Editionでも利用可能です)



以下の記事では、Intellitrace、並列/マルチスレッドデバッグ、ダンプ分析などの巨大な革新について説明します。



All Articles