次の方法で共有


IntelliTrace を使用したコード実行の記録によるアプリのデバッグ

アプリのデバッグ時間を短縮するには、Visual Studio Ultimate の IntelliTrace を使用して実行履歴を記録およびトレースします。これは、次のような IntelliTrace の機能により、多くのブレークポイントを設定せずにバグをより簡単に発見することに役立ちます。

  • アプリで発生した特定のイベントを記録する。

    これにより、関連するコード、デバッガー イベント中に [ローカル] ウィンドウに表示されたデータ、および関数呼び出し情報 (収集する場合) を確認できます。

  • バグまたはイベントを再作成するためのアプリの再起動を減らす。

  • 再現するのが困難なエラー、または Visual Studio の外部、たとえば稼動環境やその他の環境で発生したエラーをデバッグする。

次の例は、イベントの記録がいかにコードのバグの発見に役立つかを示しています。

IntelliTrace イベントのみ - 高レベルのフロー

稼働中のデータ収集および分析 (Channel 9 ビデオ)」で IntelliTrace の機能をご覧ください。

目的に合ったトピックをクリックしてください

Visual Studio の IntelliTrace を使用してアプリをデバッグする:

  • 過去のイベントを表示する。

  • 過去のイベントの呼び出し情報を表示する。

  • IntelliTrace セッションを保存する。

  • IntelliTrace により収集されたデータを制御する。

テスト マネージャーのテスト セッション中に IntelliTrace データを収集する

Visual Studio の外部で実行するアプリから IntelliTrace データを収集する

IntelliTrace ログ ファイル (.iTrace ファイル) からデバッグを開始する。

FAQ

  • IntelliTrace を使用してデバッグできるアプリ

  • IntelliTrace を使用してデバッグする理由

  • IntelliTrace が収集するデータ

  • IntelliTrace はアプリの速度を低下するか

IntelliTrace を使用してデバッグできるアプリ

サポート状況

限定されたサポート

  • 試用前提の F# アプリ

  • Windows ストア アプリは、イベントのみにサポート

サポートなし

  • C++、その他の言語、スクリプト

  • Silverlight、Xbox、Windows Mobile のアプリ

[!メモ]

既に実行されているプロセスをデバッグする場合は、IntelliTrace を使用できません。プロセスの開始時に IntelliTrace を起動する必要があります。

IntelliTrace を使用してデバッグする理由

従来のデバッグまたはライブ デバッグでは、アプリの現在の状態と過去のイベントの制限されたデータのみが表示されます。アプリの現在の状態に基づいてこれらのイベントを推測するか、またはアプリを再実行することによってこれらのイベントを再作成する必要があります。

IntelliTrace は、これらの時点で特定のイベントやデータを記録することによってこの従来のデバッグを拡大します。これにより、特にバグの箇所を通り越してステップ実行した場合に、再起動せずにこれらのアプリで起こったことを確認できます。IntelliTrace は従来のデバッグ中に既定で有効になっているため、自動的に非表示の状態でデータを収集します。これにより、従来のデバッグと IntelliTrace デバッグを簡単に切り替えて、記録された情報を見ることができます。「Visual Studio でのデバッグのための IntelliTrace を使用したコード実行の記録」および「IntelliTrace が収集するデータ」を参照してください。

IntelliTrace は、再現するのが困難なエラーや Visual Studio の外部で発生するエラーのデバッグに役立ちます。IntelliTrace データを収集し、IntelliTrace ログ ファイル (.iTrace ファイル) に保存できます。.iTrace ファイルには、例外、スレッド、Web 要求、テスト データ、モジュール、およびその他のシステム情報に関する詳細情報が含まれています。Visual Studio Ultimate でこのファイルを開き、項目を選択し、IntelliTrace でデバッグを開始できます。これにより、ファイル内の任意のイベントに移動して、その時点のアプリに関する特定の詳細を表示できます。

次のソースからの IntelliTrace データを保存できます。

IntelliTrace ログ (.iTrace) ファイルによるアプリのデバッグ」を参照してください。

IntelliTrace を使用したデバッグがどのように役立つかの例を次に示します。

  • アプリのデータ ファイルが破損していますが、このイベントの発生場所を特定できません。

    IntelliTrace がなければ、コード全体を確認して可能性のあるファイルのアクセスをすべて見つけ、それらのアクセスにブレークポイントを設定してから、アプリを再実行して、問題の発生個所を探さなければなりません。IntelliTrace を使用すると、各イベントが発生したときに収集されたアプリに関するファイル アクセス イベントや特定の詳細をすべて表示できます。

  • 例外が発生します。

    IntelliTrace がない場合、例外に関するメッセージが表示されますが、例外の原因となったイベントに関する詳細な情報はわかりません。呼び出し履歴を調べて、例外の原因となった一連の呼び出しを確認することはできますが、それらの呼び出し中に発生したイベントのシーケンスを確認することはできません。IntelliTrace を使用すると、例外の前に発生したイベントを確認できます。

  • アプリは、テスト コンピューターではクラッシュしますが、開発用コンピューターでは正常に実行します。

    Microsoft テスト マネージャーから IntelliTrace データを収集して、.iTrace ファイルにデータを保存し、後日確認できるようにこのファイルを Team Foundation Server の作業項目に添付することができます。「診断トレース データへの再現が困難なバグの組み込み」および「IntelliTrace ログ (.iTrace) ファイルによるアプリのデバッグ」を参照してください。

  • Visual Studio の外部で実行中のアプリでバグまたはクラッシュが発生します。

    Windows Azure ベースのアプリの場合、アプリを発行する前に IntelliTrace データの収集を構成できます。アプリの実行中、IntelliTrace はデータを .iTrace ファイルに保存します。「IntelliTrace および Visual Studio を使用して発行されたクラウド サービスのデバッグ」を参照してください。

    マネージ デスクトップ (.exe) アプリ、IIS 7.0、7.5、および 8.0 でホストされる ASP.NET Web アプリ、および SharePoint 2010 アプリケーションの場合、スタンドアロン コレクターを使用して IntelliTrace データを .iTrace ファイルに保存できます。

    これは、システム構成を変更したくない場所 (実稼働環境など) で実行されているアプリの問題を診断する場合に便利です。システムの構成を変更しないでコレクターをインストールすることができます。データを収集したら、コレクターを削除して、アンインストールします。「スタンドアロン コレクターを使用した Visual Studio の外部での IntelliTrace データの収集」を参照してください。

IntelliTrace が収集するデータ

イベント情報の収集

既定では、IntelliTrace は IntelliTrace イベントだけを記録します。これらは、デバッガー イベント、例外、.NET Framework イベント、デバッグに役立つその他のシステム イベントです。常に収集されるデバッガー イベントと例外を除き、収集する IntelliTrace イベントの種類を選択できます。「Visual Studio でのデバッグのための IntelliTrace 収集の設定」を参照してください。

  • デバッガーのイベント

    IntelliTrace は、Visual Studio デバッガーに発生するイベントを常に記録します。たとえば、アプリの起動はデバッガー イベントです。その他のデバッガー イベントは、アプリの実行を中断する停止イベントです。たとえば、プログラムはブレークポイントをヒットしたり、トレースポイントをヒットしたり、[ステップ] コマンドを実行したりします。

    パフォーマンスを向上するため、IntelliTrace はデバッガー イベントのすべての値を記録しません。代わりに、次の値を記録します。

    • [ローカル] ウィンドウの値。これらの値を確認するために [ローカル] ウィンドウを開いたままにします。

    • [自動変数] ウィンドウが開いているときにのみ [自動変数] ウィンドウの値

    • 値を表示するためにソース ウィンドウの変数の上にマウス ポインターを移動すると表示されるデータヒントの値。IntelliTrace は、固定されたデータヒントの値は収集しません。

  • 例外

    IntelliTrace は、次のような種類の例外の種類とメッセージを記録します。

    • 例外がスローおよびキャッチされた場合の処理済みの例外

    • ハンドルされない例外

  • .NET Framework イベント

    既定では、IntelliTrace は最も一般的な .NET Framework のイベントを記録します。次に例を示します。

    • ファイル アクセス イベントの場合、IntelliTrace はファイル名を収集します。

    • チェック ボックスの確認イベントの場合、IntelliTrace はチェック ボックスの状態とテキストを収集します。

  • Visual Studio 2012.1: SharePoint 2010 アプリケーション イベント

    Visual Studio の外部で実行されている SharePoint 2010 アプリケーションの場合、Visual Studio 2012.1 に含まれるスタンドアロン コレクターを使用して、特定の SharePoint イベントを記録して .iTrace ファイルに保存できます。

    .iTrace ファイルを開いたら、SharePoint 相関 ID を入力して対応する Web 要求を見つけ、記録されたイベントを表示し、特定のイベントからのデバッグを開始できます。ファイルにハンドルされない例外が含まれている場合は、相関 ID を選択して例外のデバッグを開始できます。ユーザー プロファイル イベントと Unified Logging System (ULS) イベントのサブセットを記録できます。

    参照トピック

関数呼び出し情報の収集

関数の呼び出し情報を収集するように IntelliTrace を構成することができます。この情報は、呼び出し履歴を表示したり、コードの呼び出しで前後に移動できます。各関数呼び出しについて、IntelliTrace は次のデータを記録します。

  • 関数名

  • 関数のエントリ ポイントでパラメーターとして渡され、関数の終了ポイントで返されるプリミティブ データ型の値

  • 読み取りまたは変更されたときの自動プロパティの値

  • null かどうかの場合以外の値を除く、1 番目のレベルの子オブジェクトへのポインター

[!メモ]

IntelliTrace は、配列の最初の 256 個のオブジェクトと文字列の最初の 256 文字のみを収集します。

Visual Studio でのデバッグのための IntelliTrace 収集の設定」を参照してください。

モジュール情報の収集

IntelliTrace で収集される呼び出し情報の量を制御するには、目的のモジュールのみを指定します。これにより、収集時のアプリのパフォーマンスを向上させることができます。「Visual Studio でのデバッグのための IntelliTrace 収集の設定」を参照してください。

IntelliTrace はアプリの速度を低下するか

既定では、選択された IntelliTrace イベントについてのみ情報が収集されます。これが原因でアプリの速度が低下するかどうかは、コードの構造と構成によって決まります。たとえば、IntelliTrace がイベントを頻繁に記録する場合はアプリの速度が低下することがありますが、同時にアプリのリファクタリングを考慮するよう求められる場合があります。

呼び出し情報を収集すると、アプリの速度が大幅に低下する可能性があります。さらに、ディスクに保存される IntelliTrace ログ ファイル (.iTrace ファイル) のサイズが増加する可能性があります。これらの影響を最小限に抑えるには、必要なモジュールのみから呼び出し情報を収集するようにします。.iTrace ファイルの最大サイズを変更するには、[ツール][オプション][IntelliTrace][詳細設定] の順に選択します。「Visual Studio でのデバッグのための IntelliTrace 収集の設定」を参照してください。

情報の入手方法

Visual Studio でのデバッグのための IntelliTrace を使用したコード実行の記録

Visual Studio でのデバッグのための IntelliTrace 収集の設定

診断トレース データへの再現が困難なバグの組み込み

スタンドアロン コレクターを使用した Visual Studio の外部での IntelliTrace データの収集

IntelliTrace ログ (.iTrace) ファイルによるアプリのデバッグ

Dd264915.collapse_all(ja-jp,VS.110).gifブログ

Visual Studio ALM + Team Foundation Server

Dd264915.collapse_all(ja-jp,VS.110).gifフォーラム

Visual Studio Debugger

Dd264915.collapse_all(ja-jp,VS.110).gifガイダンス

Testing for Continuous Delivery with Visual Studio 2012 – Chapter 6: A Testing Toolbox (Visual Studio 2012 を使用した絶え間のない配信のためのテスト - 第 6 章: テスト ツールボックス)

Dd264915.collapse_all(ja-jp,VS.110).gifビデオ

Channel 9: 稼働中のデータ収集および分析