マイクロソフトとブラウン大学が共同で作成したのがDebugger Canvasです。
Debbuger Canvasは、新たな方法でデバッグ作業をするためのCode Bubbles™をVisual Studioへ追加するための無料のパワーツールです。
ドキュメントタブを見失ったことはありませんか?
ファイルからファイルへあっちこちを参照しながらデバッグしようとしたことはありませんか?
Debugger Canvasは、拡大したり全体を表示したりできる一つの画面で、関係するコードを一覧表示できます。ブレイクポイントを打ったり、コードにステップインしたりすると、Debugger Canvasは、呼び出し行やローカル変数などデバッグしている対象メソッドだけを表示し、大きな画像でコードを俯瞰する手助けをします。
デモの様子は下の動画を見るとよくわかるかと思います。
動作様子
まず、下の図のようにブレイクポイントを打って、デバッグ実行します。
デバッグ実行で、操作をしブレイクポイントに反応すると次の図のようにDebugger Canvasが表示されます。
ステップイン実行をしていくと、次のように展開されていく。
Visual Studioエディターの機能を使用しているので、当然次の図のように変数内部を参照することができる。
コールスタックを確認する際に、次の図のように時間ごとのオブジェクトの変更履歴を参照することが可能。
各ペインの左上には、クラス名、名前空間、プロジェクト名などが表示されており、今どこのコードが表示されているのかを認識しやすくなっている。
また、クラスにどのようなメソッドが含まれているのかを一覧で確認が可能。
このメソッド一覧で、メソッドをクリックすると、次のように表示される。これはブレイクポイントとは関係ないので、依存関係を示す矢印は表示されない。
ステップ実行を継続していけば、次のような感じに、複数のメソッドを参照している場合でもしっかりと関係性がわかるように表示される。
次の図のようなメモを残すことができる。
一般的な質問
一般的な質問として、10個前後の質疑が本家では記載されていますので、気になる方は本家を参照してください。ここでは、3つほど意訳してます。
Debugger Canvasはどこからダウンロードできますか?
現在、提供を始めるための準備の最終段階です。最初のアルファーリリースは2011年の6月上旬に提供を始めます。ダウンロードリンクを確認するために、Debugger Canvas – Microsoft Researchに再度アクセスするか、MSDN Blogs又は、http://twitter.com/andrewbragdonをチェックしてください。
キャンバス上のコードバブルは何ですか?
それぞれのコードバブルは、メンバー定義を表示し、メソッドを呼び出すわけではありません。なので、二回目にメソッドにステップインしても、Debugger Canvasは最初に実行したときと同じバブルを表示します。
Debugger Canvasは実行したすべてのメソッドのバブルを開きますか?
いいえ。
Debugger Canvasは、ユーザの行為を元にバブルを開きます。次の場合、キャンバスにバブルを表示します。
- メソッドにステップインした
- ブレイクポイントを設定し、ヒットした
- コールスタックウィンドウでメソッドをダブルクリックした
- インターフェイスコールビューでメソッドをダブルクリックした
- インテリトレースウィンドウからキャンバスにメソッドをD&Dした。(ドラッグしたコールツリーのすべてのメソッドがバブル表示される)
- 定義に移動を実行した