次の方法で共有


IntelliTrace for Visual Studio Enterprise (C#、Visual Basic、C++)

IntelliTrace を使用してコードの実行履歴を記録およびトレースするときに、アプリケーションのデバッグに費やす時間を短縮できます。 IntelliTrace では次のことが可能なため、バグを簡単に見つけることができます。

  • 特定のイベントを記録する

  • 関連するコード、デバッガー イベント中に [ローカル ] ウィンドウに表示されるデータ、関数呼び出し情報を調べる

  • 再現が困難な、またはデプロイで発生するデバッグ エラー

Visual Studio Enterprise エディションでは IntelliTrace を使用できますが、Professional エディションや Community エディションでは使用できません。

何をしたいですか?

シナリオ タイトル
IntelliTrace を使用してアプリケーションをデバッグする:

- 過去のイベントを表示します。
- 過去のイベントを含む通話情報を表示します。
- IntelliTrace セッションを保存します。
- IntelliTrace によって収集されるデータを制御します。
- IntelliTrace を使用して以前のアプリの状態を検査する
- チュートリアル: IntelliTrace の使用
- IntelliTrace の機能
- デバッグ履歴
デプロイされたアプリケーションから IntelliTrace データを収集する - IntelliTrace スタンドアロン コレクターの使用
IntelliTrace ログ ファイル (.iTrace ファイル) からデバッグを開始します。 - 保存された IntelliTrace データの使用

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

サポート レベル アプリケーションのタイプ
完全なサポート - .NET Framework 2.0 以降のバージョンを使用する Visual Basic および Visual C# アプリケーション。
ASP.NET、Microsoft Azure、Windows フォーム、WCF、WPF、Windows ワークフロー、SharePoint 2010、SharePoint 2013、64 ビット アプリなど、ほとんどのアプリケーションをデバッグできます。
IntelliTrace を使用して SharePoint アプリケーションをデバッグするには、「 チュートリアル: IntelliTrace を使用した SharePoint アプリケーションのデバッグ」を参照してください。
IntelliTrace を使用して Microsoft Azure アプリをデバッグするには、「 IntelliTrace と Visual Studio を使用した発行済みクラウド サービスのデバッグ」を参照してください。
制限付きサポート - Windows を対象とする C++ アプリでは、IntelliTrace ステップ バックを使用したスナップショットの表示がサポートされます。 デバッガーイベントと例外イベントのみがサポートされています。
- ローカル デバッグの特定のイベント (MVC コントローラー、ADO.NET、および HTTPClient イベント) に対してのみサポートされる .NET Core アプリと ASP.NET Core アプリ。 スタンドアロン コレクターは、.NET Core または ASP.NET Core アプリではサポートされていません。
- F# アプリを試験的に使用する
- イベントでのみサポートされる UWP アプリ
サポートされていません - その他の言語とスクリプト
- Windows サービス、Silverlight、Xbox、または Windows Mobile アプリ

既に実行されているプロセスをデバッグする場合は、IntelliTrace イベントのみを収集できます (呼び出し情報はありません)。 ローカル コンピューター上でのみ、32 ビットまたは 64 ビットのプロセスにアタッチできます。 プロセスにアタッチする前に発生したイベントは収集されません。

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

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

IntelliTrace は、これらの時点で特定のイベントとデータを記録することで、この従来のデバッグ エクスペリエンスを拡張します。 これにより、アプリケーションで何が起こったかを再起動せずに確認できます。特に、バグがある場所を過ぎた場合に発生します。 IntelliTrace は、従来のデバッグ中に既定で有効になり、データを自動的かつ目に見えない方法で収集します。 これにより、従来のデバッグと IntelliTrace デバッグを簡単に切り替えて、記録された情報を表示できます。 IntelliTrace の機能IntelliTrace が収集するデータを参照してください。

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

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

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

  • アプリケーションによってデータ ファイルが破損しましたが、このイベントが発生した場所がわかりません。

    IntelliTrace を使用しない場合は、コードを調べて、考えられるすべてのファイル アクセスを検索し、それらのアクセスにブレークポイントを設定し、アプリケーションを再実行して問題が発生した場所を見つける必要があります。 IntelliTrace を使用すると、収集されたすべてのファイル アクセス イベントと、各イベントが発生したときにアプリケーションに関する具体的な詳細を確認できます。

  • 例外が発生します。

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

  • デプロイされたアプリケーションでバグまたはクラッシュが発生します。

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

    IIS 7.0、7.5、8.0、および SharePoint 2010 または SharePoint 2013 アプリケーションでホストされている ASP.NET Web アプリの場合は、単独または System Center 2012 で Microsoft Monitoring Agent を使用して、IntelliTrace データを .iTrace ファイルに保存します。

    これは、展開中のアプリに関する問題を診断する場合に便利です。 IntelliTrace スタンドアロン コレクターの使用を参照してください。

IntelliTrace ではどのようなデータが収集されますか?

イベント情報を収集する

既定では、IntelliTrace は IntelliTrace イベント (デバッガー イベント、例外、.NET Framework イベント、デバッグに役立つその他のシステム イベント) のみを記録します。 常に収集されるデバッガー イベントと例外を除き、収集する IntelliTrace イベントの種類を選択できます。 IntelliTrace の機能を参照してください。

  • デバッガー イベント

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

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

    • [ローカル] ウィンドウの値。 これらの値を表示するには、[ ローカル] ウィンドウを開いたままにします。

    • 「Autos」ウィンドウの値は、「Autos」ウィンドウが開いている場合にのみ表示されます

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

      IntelliTrace イベントとスナップショット モードが有効になっている場合、IntelliTrace は各デバッガー ブレークポイントと ステップ イベントでアプリケーションのプロセスのスナップショットを取得します。 ウィンドウが開いているかどうかに関係なく、[ ローカル]、[ 自動変数]、[ ウォッチ ] ウィンドウに値が記録されます。 ピン留めされたデータ ヒントの値も収集されます。

  • 例外

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

    • 例外がスローされてキャッチされる状況で、適切に処理される例外

    • ハンドルされない例外

  • .NET Framework イベント

    既定では、IntelliTrace は最も一般的な .NET Framework イベントを記録します。 たとえば、 CheckBox.CheckedChanged イベントの場合、IntelliTrace はチェック ボックスの状態とテキストを収集します。

  • SharePoint 2010 および SharePoint 2013 アプリケーション イベント

    Visual Studio の外部で実行されている SharePoint 2010 および 2013 アプリケーションのユーザー プロファイル イベントと統合ログ システム (ULS) イベントのサブセットを記録できます。 これらのイベントを .iTrace ファイルに保存できます。 Visual Studio Enterprise 2015 以降のバージョン、Visual Studio Ultimate の以前のバージョン、またはトレース モードで実行されている Microsoft Monitoring Agent が必要です。

    .iTrace ファイルを開いたら、SharePoint 関連付け ID を入力して、一致する Web 要求を検索し、記録されたイベントを表示して、特定のイベントからのデバッグを開始します。 ファイルにハンドルされない例外が含まれている場合は、関連付け ID を選択して例外のデバッグを開始できます。

    参照:

スナップショットのキャプチャ

ブレークポイントとデバッガーのステップ イベントごとにスナップショットをキャプチャするように IntelliTrace を構成できます。 IntelliTrace は、各スナップショットでアプリケーションの完全な状態を記録します。これにより、複雑な変数を表示したり、式を評価したりできます。

IntelliTrace スタンドアロン コレクターは、スナップショットのキャプチャをサポートしていません。

IntelliTrace を使用した以前のアプリの状態の検査を参照してください。

関数呼び出し情報を収集する

関数の呼び出し情報を収集するように IntelliTrace を構成できます。 この情報を使用すると、呼び出し履歴を表示し、コード内の呼び出しを前後に進むことができます。 関数呼び出しごとに、IntelliTrace はこのデータを記録します。

  • 関数名
  • 関数エントリ ポイントでパラメーターとして渡され、関数の終了ポイントで返されるプリミティブ データ型の値
  • 読み取り時または変更時の自動プロパティの値
  • 第 1 レベルの子オブジェクトへのポインター。ただし、null であるかどうか以外の値は含みません。

IntelliTrace では、配列内の最初の 256 個のオブジェクトと、文字列の最初の 256 文字のみが収集されます。

デバッグ履歴を使用したアプリの検査を参照してください。

モジュール情報の収集

IntelliTrace が収集する呼び出し情報の量を制御するには、関心のあるモジュールのみを指定します。 これにより、収集中のアプリケーションのパフォーマンスを向上させることができます。 「 IntelliTrace 機能で IntelliTrace が収集する情報の量を制御する 」セクションを参照してください。

IntelliTrace はアプリケーションの速度を低下しますか?

既定では、IntelliTrace は選択した IntelliTrace イベントのデータのみを収集します。 これは、コードの構造と編成によっては、アプリケーションの速度が低下する場合と遅くない場合があります。 たとえば、IntelliTrace が頻繁にイベントを記録する場合、アプリケーションの速度が低下する可能性があります。 また、アプリケーションのリファクタリングを検討することもできます。

呼び出し情報を収集すると、アプリケーションの速度が大幅に低下する可能性があります。 また、ディスクに保存する IntelliTrace ログ ファイル (.iTrace ファイル) のサイズが大きくなる場合もあります。 これらの影響を最小限に抑えるには、関心のあるモジュールの呼び出し情報のみを収集します。 .iTrace ファイルの最大サイズを変更するには、[ツール]、[オプション]、[IntelliTrace]、[詳細設定] の順に移動します。

ブログ

Microsoft DevOps

フォーラム

Visual Studio 診断