これは便利!Microsoft Researchが開発したDebugger Canvas

マイクロソフトとブラウン大学が共同で作成したのがDebugger Canvasです。
Debbuger Canvasは、新たな方法でデバッグ作業をするためのCode Bubbles™をVisual Studioへ追加するための無料のパワーツールです。

ドキュメントタブを見失ったことはありませんか?
ファイルからファイルへあっちこちを参照しながらデバッグしようとしたことはありませんか?
Debugger Canvasは、拡大したり全体を表示したりできる一つの画面で、関係するコードを一覧表示できます。ブレイクポイントを打ったり、コードにステップインしたりすると、Debugger Canvasは、呼び出し行やローカル変数などデバッグしている対象メソッドだけを表示し、大きな画像でコードを俯瞰する手助けをします。
デモの様子は下の動画を見るとよくわかるかと思います。

動作様子

まず、下の図のようにブレイクポイントを打って、デバッグ実行します。

image

デバッグ実行で、操作をしブレイクポイントに反応すると次の図のようにDebugger Canvasが表示されます。

image

ステップイン実行をしていくと、次のように展開されていく。

image

image

image

Visual Studioエディターの機能を使用しているので、当然次の図のように変数内部を参照することができる。

image

image

コールスタックを確認する際に、次の図のように時間ごとのオブジェクトの変更履歴を参照することが可能。

image

各ペインの左上には、クラス名、名前空間、プロジェクト名などが表示されており、今どこのコードが表示されているのかを認識しやすくなっている。

image

また、クラスにどのようなメソッドが含まれているのかを一覧で確認が可能。

image

このメソッド一覧で、メソッドをクリックすると、次のように表示される。これはブレイクポイントとは関係ないので、依存関係を示す矢印は表示されない。

image

ステップ実行を継続していけば、次のような感じに、複数のメソッドを参照している場合でもしっかりと関係性がわかるように表示される。

image

次の図のようなメモを残すことができる。

image

一般的な質問

一般的な質問として、10個前後の質疑が本家では記載されていますので、気になる方は本家を参照してください。ここでは、3つほど意訳してます。

Debugger Canvasはどこからダウンロードできますか?

現在、提供を始めるための準備の最終段階です。最初のアルファーリリースは2011年の6月上旬に提供を始めます。ダウンロードリンクを確認するために、Debugger Canvas – Microsoft Researchに再度アクセスするか、MSDN Blogs又は、http://twitter.com/andrewbragdonをチェックしてください。

キャンバス上のコードバブルは何ですか?

それぞれのコードバブルは、メンバー定義を表示し、メソッドを呼び出すわけではありません。なので、二回目にメソッドにステップインしても、Debugger Canvasは最初に実行したときと同じバブルを表示します。

Debugger Canvasは実行したすべてのメソッドのバブルを開きますか?

いいえ。
Debugger Canvasは、ユーザの行為を元にバブルを開きます。次の場合、キャンバスにバブルを表示します。

  • メソッドにステップインした
  • ブレイクポイントを設定し、ヒットした
  • コールスタックウィンドウでメソッドをダブルクリックした
  • インターフェイスコールビューでメソッドをダブルクリックした
  • インテリトレースウィンドウからキャンバスにメソッドをD&Dした。(ドラッグしたコールツリーのすべてのメソッドがバブル表示される)
  • 定義に移動を実行した

情報源・ネタ元

DebugViewで.NETプログラムのデバッグ出力を取得する

Visual Studioをインストールしていない環境で、.NETで作成したアプリケーションのデバッグ出力を見るために、DebugViewを使用することができます。

  1. ダウンロードし、DebugViewを管理者権限で起動します。
  2. メニュバーのCapture→Capture Global Win 32を選択します。
    DebugView: Capture options

DebugViewでキャプチャーを開始します。たとえば次のようなコードを実行します。

public ActionResult Index(int page = 1)

{

Debug.WriteLine("HomeController.Index: started, page=" + page);

PagedResult<Event> events;

using (var model = new EventsEntities())

{

events = model.ListPublicEvents(page);

}

Debug.WriteLine("HomeController.Index: finished");

return View(events);

}

DebugViewがキャプチャーし表示します。

DebugView: Debug output

PowerGUI VSX 1.3で追加された機能

PowerGUI VSX 1.3 Released!をざっくり翻訳した投稿です。

PowerGUI Console

PowerGUI Consoleが追加されました。
Visual Studioの[メニューバー]→[表示]→[PowerGUI Console]でコンソールを起動します。

image

コンソール上で、PowerShell操作が可能です。

image

PowerShellプロジェクト

PowerShellのプロジェクト型が追加されました。

image

新しい項目の追加で、PowerShellスクリプトを追加できます。

image

ロゴマークを刷新

PoweGUIのロゴも新しくしました。

pgvsx_logo_new

PowerGUI Visual Studio Extensionの紹介

PowerGUI Visual Studio Extension(PowerGUI VSX)は、Visual StudioでPowerShellのインテリセンスを使用できよるようにするアドインです。
このアドインは、PowerGUIをVisual Studioで使用できるようにする拡張アドインです。

機能

現在提供されているVersion 1.3は、PowerGUI 2.4に対応しています。

  • カスタムPowerShellエディターによるインテリセンスの提供
  • 構文ハイライトとスクリプト分析
  • PowerGUI設定に対応
  • PowerGUIモジュールのインポートに対応
  • PowerGUIスニペットに対応
  • PowerShellのデバッグ
  • PowerGUIコンソール ツールウィンドウ
  • PowerShellプロジェクトタイプ

Screenshot

Snippets

使用準備

  1. 最新バージョンのPowerGUIをインストールします。
  2. 使用する前に少なくとも一度は、PowerGUIスクリプトエディタ(x86)を起動させる必要があります。

既知の問題

このアドインは、Reflectorをインストールしている環境で使用すると、Visual Studioが異常終了してしまうことがわかっています。