デバッグ中に呼び出し履歴を視覚的にトレースするコード マップを作成します。 コードの実行内容を追跡するためにマップ上にメモを作成して、バグを見つけることに集中できます。
コード マップで使用できるコマンドとアクションの詳細については、「コード マップの 参照と再配置」を参照してください。
Important
コード マップは 、Visual Studio Enterprise エディションでのみ作成できます。
コード マップの概要を次に示します。
呼び出し履歴をマップする
Visual Studio Enterprise の C#、Visual Basic、C++、または JavaScript プロジェクトで、[デバッグ] メニューから [>デバッグの開始] を選択するか、F5 キーを押してデバッグを開始します。
アプリが中断モードに入った後、または関数にステップ インしたら、[デバッグ] >[マップのコード化] を選択するか、Ctrl キー+Shift+` キーを押します。
現在の呼び出し履歴は、新しいコード マップにオレンジ色で表示されます。
デバッグを続行すると、コード マップが自動的に更新されます。 マップ項目またはレイアウトを変更しても、コードには影響しません。 マップ上の任意の名前の変更、移動、または削除を自由に行えます。
項目に関する詳細情報を取得するには、項目の上にマウス ポインターを置いて、項目のヒントを確認します。 ツール バーの [凡例 ] を選択して、各アイコンの意味を確認することもできます。
注
この図は、コード マップの上部にある 古いバージョンのコードに基づいている可能性 があります。これは、マップを最後に更新した後にコードが変更された可能性があることを意味します。 たとえば、マップ上の呼び出しがコードに存在しなくなったとします。 メッセージを閉じてから、マップをもう一度更新する前に、ソリューションを再構築してみてください。
外部コードをマッピングする
既定では、マップには独自のコードのみが表示されます。 マップ上に外部コードを表示するには:
[呼び出し履歴] ウィンドウで右クリックし、[外部コードの表示] を選択します。
するまたは、Visual Studio で [ マイ コードのみを有効にする ] チェック ボックスをオフにします。
このオプションは、[ツール] (または [デバッグ] >[オプション] ウィンドウの [すべての設定]>[デバッグ]>General セクションで使用できます。
このオプションは、[ツール] (または [デバッグ]) ダイアログの > にあり、[デバッグ][全般] セクションで利用可能です。
する
マップのレイアウトを制御する
マップのレイアウトを変更しても、コードには影響しません。
マップのレイアウトを制御するには、マップ ツール バーの [レイアウト ] メニューを選択します。
[レイアウト] メニューでは、次のことができます。
- 既定のレイアウトを変更します。
- [デバッグ時に自動的にレイアウトする] の選択を解除して、マップの自動配置を停止します。
- 項目を追加する際は、インクリメンタル レイアウトをオフにして、マップの再配置を最小限に抑えます。
コードに関するメモを作成する
コメントを追加して、コード内で何が起こっているかを追跡できます。
コメントを追加するには、コード マップを右クリックし、[ 編集]>[新しいコメント]を選択し、コメントを入力します。
コメントに新しい行を追加するには、Shift キーを押+Enter キーを押します。
次の呼び出し履歴でマップを更新する
次のブレークポイントまたは関数へのステップにアプリを実行すると、マップによって新しい呼び出し履歴が自動的に追加されます。
マップで新しい呼び出し履歴が自動的に追加されないようにするには、[
する] を選択し、コード マップ ツール バーでします。 マップは引き続き既存の呼び出し履歴を強調表示します。 現在の呼び出し履歴をマップに手動で追加するには、++ キーを押します。
関連するコードをマップに追加する
これでマップが作成されました。C# または Visual Basic では、フィールド、プロパティ、その他のメソッドなどの項目を追加して、コード内で何が起こっているかを追跡できます。
コード内のメソッドの定義に移動するには、マップ内のメソッドをダブルクリックするか、選択して F12 キーを押すか、右クリックして [ 定義に移動] を選択します。
追跡する項目をマップに追加するには、メソッドを右クリックし、追跡する項目を選択します。最近追加された項目は緑色で表示されます。
注
既定では、マップに項目を追加すると、クラス、名前空間、アセンブリなどの親グループ ノードも追加されます。 この機能をオフまたはオンにするには、コード マップ ツール バーの [ 親を含める ] ボタンを選択するか、 Ctrl キー を押しながら項目を追加します。
さらに多くのコードを表示するには、マップの構築を続けます。
マップを使用してバグを見つける
コードを視覚化すると、バグをすばやく見つけるのに役立ちます。 たとえば、描画アプリのバグを調査しているとします。 線を描画して元に戻そうとすると、別の線を描画するまで何も起こりません。
そのため、 clear、 undo、および Repaint メソッドにブレークポイントを設定し、デバッグを開始し、次のようなマップを作成します。
する
ユーザー ジェスチャーはすべてマップ上でRepaintを呼び出しますが、undoを除きます。 これにより、 undo がすぐに機能しない理由が説明される場合があります。
バグを修正してアプリの実行を続けた後、マップは undo から新しい呼び出しを Repaintに追加します。
マップを他のユーザーと共有する
マップをエクスポートし、Microsoft Outlook で他のユーザーに送信し、ソリューションに保存して、バージョン管理にチェックインすることができます。
マップを共有または保存するには、コード マップ ツール バーの [共有 ] を使用します。
する